动力双 |在将计算列添加到汇总 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
)
再次。
抱歉打扰了,但目前,我正在尝试估算呼叫中心的规模,这当然需要为 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
)