【问题标题】:How can I calculate total by categories that a supplier works with?如何按供应商使用的类别计算总计?
【发布时间】:2022-11-04 23:51:06
【问题描述】:
我有一个切片器,可以按供应商过滤整个页面,在第一个视觉(多行卡)中,我必须计算供应商在整个公司中的参与(百分比)以及该供应商在他工作的类别。
我的表是这样的:
| Supplier |
Category |
Revenue |
| Supplier1 |
Hair |
10000 |
| Supplier2 |
Intimate Hygiene |
10000 |
| Supplier2 |
Dermocosmetics |
15000 |
| Supplier1 |
Intimate Hygiene |
20000 |
| Supplier3 |
Hair |
15000 |
| Supplier3 |
Intimate Hygiene |
20000 |
所以,假设我正在过滤供应商1,所以我想得到供应商1 的收入总和除以供应商1 参与的类别中所有供应商的收入总和。
由于供应商 1 只是参与头发和私密卫生,因此数量应为:
(10000+20000)/(10000+20000+10000+20000+15000+20000)=31.57%
请注意,Supplier1 在 Dermocosmetics 中没有收入值,因此我在计算中放弃了该类别的收入。
【问题讨论】:
标签:
powerbi
dax
powerbi-desktop
m
【解决方案1】:
假设您的数据如下
桌子
| Supplier |
Category |
Revenue |
| Supplier1 |
Hair |
10000 |
| Supplier2 |
Intimate Hygiene |
10000 |
| Supplier2 |
Dermocosmetics |
15000 |
| Supplier1 |
Intimate Hygiene |
20000 |
| Supplier3 |
Hair |
15000 |
| Supplier3 |
Intimate Hygiene |
20000 |
每个供应商的份额应为
-
供应商 1:40% (30,000/75,000)
-
供应商 2:38.46% (25,000/65,000)
-
供应商 3:46.67% (35,000/75,000)
DAX 计算
第一步是查找每个选定供应商的类别。稍后将找到的类别应用到CALCULATE 和SUM。
Supplier Share =
VAR _SelectedSupplier =
SELECTEDVALUE ( 'Table'[Supplier] )
VAR _SupplierCategories =
SELECTCOLUMNS (
FILTER ( 'Table', [Supplier] = _SelectedSupplier ),
"@Categories", [Category]
)
VAR _TotalRevenue =
CALCULATE (
SUM ( 'Table'[Revenue] ),
'Table'[Category] IN _SupplierCategories,
REMOVEFILTERS ( 'Table'[Supplier] )
)
VAR _SelectedSupplierRevenue =
SUM ( 'Table'[Revenue] )
VAR _Result =
DIVIDE ( _SelectedSupplierRevenue, _TotalRevenue )
RETURN
_Result
输出