Power BI中实现Excel INDEX+AGGREGATE函数多尺寸匹配类型方法
Power BI 实现Excel匹配逻辑的操作步骤
公式逻辑拆解
你原来的Excel公式核心逻辑是:
- 不区分
SIZEA/SIZEB的顺序,筛选data表中两个尺寸同时大于等于当前report行对应尺寸、且SIZEC大于等于当前report行SIZEC的所有行 - 在筛选结果中取
RANK字段的最大值 - 返回该
RANK值对应的第一个TYPE字段值
具体操作
- 打开Power BI,切换到数据视图,在右侧字段列表选中
report表 - 点击顶部菜单栏的「新建列」,在公式编辑栏输入如下DAX代码:
匹配TYPE = // 提取当前report行的三个尺寸参数 VAR CurrentSizeA = report[SIZEA] VAR CurrentSizeB = report[SIZEB] VAR CurrentSizeC = report[SIZEC] // 筛选符合尺寸匹配规则的data表行 VAR FilteredData = FILTER( ALL(data), (data[SIZEA] >= CurrentSizeA && data[SIZEB] >= CurrentSizeB) || (data[SIZEA] >= CurrentSizeB && data[SIZEB] >= CurrentSizeA) && data[SIZEC] >= CurrentSizeC ) // 取筛选结果中的最大RANK值 VAR MaxRank = MAXX(FilteredData, data[RANK]) // 返回对应TYPE RETURN CALCULATE(FIRSTNONBLANK(data[TYPE], 1), FilteredData, data[RANK] = MaxRank)
- 按回车确认即可生成计算列,字段名可以按需修改。
注意事项
- 请确认
data表的RANK字段为数值类型,且优先级逻辑和Excel中一致(数值越大优先级越高) - 无匹配结果时默认返回空值,可在代码外层包裹
IFERROR函数自定义返回默认值
内容的提问来源于stack exchange,提问作者johon
相关产品推荐
相关产品推荐

