1

我最近开始使用 PowerBI 并学习 DAX。我想将条件伪代码转换为 DAX,这将产生一个名为“百分比”的列。所以我的表由列公司(都乐、戴森、孟山都等)、水果名称(苹果、香蕉、梨、西红柿、黄瓜等)和食品组(蔬菜、肉类等)组成。 )

Company | Fruit Name | Food Group    
----------------------------------
Dole    | Apple      |  Fruit 
Dyson   | Chicken    |  Meat
Dole    | Pear       | Fruit
Dole    | Tomato     | Vegetable

这是条件的伪代码:

if(FruitName = 'Apple')   //for the rows that have 'Apples'
     then( 1/count( Food Group for Company) )   //percentage of apples within 
                             //Fruits distributed by Company: probably a groupby

else (1/count(Food Group for Company) )           //percentage of value within 'Food Group' by Company

结果将在度量中输出,是百分比列。

Company      | Fruit Name | Food Group | Percentage
-----------------------------------------------------
Dole         | Apple      | Fruit      |  33.33%
Dyson        | Chicken    | Meat       |  100%
Dole         | Pear       | Fruit      |  33.33%
Dole         | Banana     | Fruit      |  33.33%
Dole         | Tomato     | Vegetable  |  100%

您能否告诉我一种在 DAX 中编写此条件的方法?

谢谢

4

1 回答 1

0

我不确定我理解为什么你想要一个条件,因为你的thenelse是一样的。

无论如何,我认为您正在寻找这样的东西:

Percentage =
DIVIDE (
    COUNT ( Foods[Fruit] ),
    CALCULATE ( COUNT ( Foods[Fruit] ), ALLEXCEPT ( Foods, Foods[Group] ) )
)

ALLEXCEPT函数会删除除Group列之外的所有过滤器上下文,因此您可以获得其中的所有Fruit内容Group

结果

于 2019-01-15T19:08:54.367 回答