You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI技术需求:显示符合条件食材的对应食谱及过滤后总量

解决Power BI中动态展示高频食材总量及对应食谱的问题

我来帮你搞定这个需求!你已经迈出了第一步,现在只需要调整度量值来支持动态筛选,同时实现矩阵中同时展示食材总量和对应食谱的效果。

核心思路

问题的关键在于:当你在矩阵中展开食谱明细时,当前行的筛选上下文会变成「食材+单个食谱」,这时候原有的CountRecipe会返回1,导致无法正确判断食材是否符合「至少出现在2个食谱」的条件。我们需要修改度量值,让它忽略当前食谱的筛选,基于用户全局筛选后的数据集来判断食材是否合格,同时计算总量。

步骤1:创建「食材是否合格」的度量值

这个度量值用来判断当前食材在用户筛选后的数据集里,是否出现在至少2个食谱中:

IsQualifiedIngredient = 
VAR TotalRecipesForIngredient = CALCULATE(
    DISTINCTCOUNT('Table'[recipe]),
    ALLSELECTED('Table'[recipe]) -- 保留用户的外部筛选,忽略当前行的食谱筛选
)
RETURN IF(TotalRecipesForIngredient >= 2, 1, 0)
  • ALLSELECTED('Table'[recipe])的作用:保留用户对其他表(比如食谱分类表)的筛选,只移除当前行的单个食谱筛选,确保判断逻辑基于用户选择的全部有效食谱。

步骤2:创建「合格食材总用量」度量值

这个度量值只对合格食材计算总用量,并且不受当前食谱行的影响:

QualifiedIngredientTotalAmount = 
VAR IsQualified = [IsQualifiedIngredient]
RETURN IF(IsQualified = 1,
    CALCULATE(
        SUM('Table'[amount]),
        ALLSELECTED('Table'[recipe]) -- 计算该食材在所有筛选后食谱中的总用量
    ),
    BLANK()
)

步骤3:配置矩阵视觉对象

按照以下步骤设置矩阵,就能实现和Excel一样的效果:

  • 插入矩阵视觉对象
  • 行区域:先拖入 ingredient,再拖入 recipe(这样可以点击食材旁的箭头展开查看对应食谱)
  • 值区域:
    • 拖入 QualifiedIngredientTotalAmount(显示该食材的总用量)
    • 可选:拖入 SUM('Table'[amount])(显示该食材在当前食谱中的用量,方便查看明细)
  • 视觉级筛选:添加 IsQualifiedIngredient,设置为「等于1」,这样只会展示符合条件的食材

效果验证

用你提供的测试数据,最终会显示:

  • I2(总用量60):对应食谱R1、R2、R4,分别显示用量32、11、17
  • I3(总用量43):对应食谱R1、R2,分别显示用量14、29
  • I5(总用量89):对应食谱R2、R3,分别显示用量49、40

所有只出现在1个食谱中的食材(I1、I4、I6、I7、I8)会被自动过滤掉,而且这个矩阵会完全响应用户对关联表的筛选(比如你筛选某个食谱分类,结果会动态更新)。

内容的提问来源于stack exchange,提问作者Máté Juhász

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 17:17:46