动力双 |在将计算列添加到汇总 table 时规避 "Expressions that yield variant data-type cannot..."

Power BI | circumvent "Expressions that yield variant data-type cannot..." when adding a calculated column to a summarized table

再次。

抱歉打扰了,但目前,我正在尝试估算呼叫中心的规模,这当然需要为 Erlang-A 分布计算一些参数。这时候我想得到Average Time to Abandon,其实就是median of the abandon time,也就是下半部分被放弃的电话被放弃的放弃时间。

TABLE A 是 SELECTCOLUMN 函数的结果:

TABLE一个

Call ID date YEAR MONTH WEEK OF THE YEAR DAY OF THE WEEK TIME BAND SERVICE TIME BEFORE ABANDON
asdf1 19-apr-2021 2021 4 17 1 11 hrs INFO 49
asdf8 26-apr-2021 2021 4 18 1 16 hrs INFO 57
asdf7 26-apr-2021 2021 4 18 1 16 hrs INFO 85
asdf5 26-apr-2021 2021 4 18 1 08 hrs INFO 103
asdf2 20-apr-2021 2021 4 17 2 12 hrs APPOINTMENT 123
asdf4 26-apr-2021 2021 4 18 1 09 hrs INFO 176
asdf3 26-apr-2021 2021 4 18 1 13 hrs HOTLINE 224
asdf6 26-apr-2021 2021 4 18 1 16 hrs INFO 296

呼叫 ID 是唯一的。

我想做的是计算任意数量的“过滤器”组合的中位数。

例如,GENERAL 中值应该是 103 秒,但是,如果我只关注 16 小时内发生的呼叫,则中值是 85 秒

TABLE B 是在 TABLE A 上应用 SUMMARIZE 函数创建的。因此,从 TABLE A 样本,TABLE B

TABLE B

SERVICE YEAR MONTH WEEK OF THE YEAR DAY OF THE WEEK TIME BAND - fully filtered MEDIAN PATIENCE MEDIAN PATIENCE (service only) GENERAL MEDIAN PATIENCE
INFO 2021 4 18 1 16 - 85 85 103
INFO 2021 4 18 1 08 - 103 85 103
INFO 2021 4 18 1 09 - 176 85 103
INFO 2021 4 17 1 11 - 49 85 103
APPOINTMENT 2021 4 18 2 12 - 123 123 103
HOTLINE 2021 4 18 1 13 - 224 224 103

从SERVICE到TIME Band,是总结部分。之后,它是中位数列

我想要的是添加中位数列。但是,对于完全过滤的中位数,我正在尝试使用以下代码:

fully median patience = CALCULATE(MEDIAN('TABLE A'[TIME BEFORE ABANDON]), FILTER('TABLE A', 'TABLE A'[SERVICE] = 'TABLE B'[SERVICE] && 'TABLE A'[YEAR] = 'TABLE B'[YEAR] && 'TABLE A'[MONTH] = 'TABLE B'[MONTH] && 'TABLE A'[DAY OF THE WEEK] = 'TABLE B'[DAY OF THE WEEK] && 'TABLE A'[TIME BAND] = 'TABLE B'[TIME BAND]))

但我收到消息:"Expressions that yield variant data-type cannot be used to define calculated columns."

这对我来说似乎很奇怪,因为函数 countrows 在 CALCULATE 中工作得很好,并且应用于一堆汇总列。

事实上,我可以通过 MEASURE 获得中位数,将其插入 CARD VISUAL 中,我只需要向其添加过滤器即可。或者将许多切片器添加到仪表板页面。但是,最好在 TABLE 中获取中位数,以便同时可视化许多中位数。

有什么建议吗?

您的结果必须包含一些空白,这就是您收到错误的原因,请使用 CONVERT

进行显式转换
fully median patience =
CONVERT (
    CALCULATE (
        MEDIAN ( 'TABLE A'[TIME BEFORE ABANDON] ),
        FILTER (
            'TABLE A',
            'TABLE A'[SERVICE] = 'TABLE B'[SERVICE]
                && 'TABLE A'[YEAR] = 'TABLE B'[YEAR]
                && 'TABLE A'[MONTH] = 'TABLE B'[MONTH]
                && 'TABLE A'[DAY OF THE WEEK] = 'TABLE B'[DAY OF THE WEEK]
                && 'TABLE A'[TIME BAND] = 'TABLE B'[TIME BAND]
        )
    ),
    INTEGER
)