【发布时间】:2021-02-09 00:54:14
【问题描述】:
我有两个表,分别是 Data 和 Report。
数据表:
在数据表中包含两列是项目和供应商代码。项目列包含文本和编号,供应商代码列包含文本。
如果 CHE 记录在 DATA 中,则总结:
如果任何项目在数据表中有 CHE 记录,如果只有一个 CHE 记录,则获取值,如果有多个 CHE 记录,则比较每一列(长度和供应商),如果任何列有不同的值然后返回 MIXED 否则返回实际值
没有 CHE 记录的总结
如果数据表中只有一条none CHE记录则返回实际值,但如果该时间数据表中有多个none CHE记录,则比较每一列的值,如果任何列值不同则返回混合其他价值。
总结:在 DATA 表中找不到记录:
返回不适用 逻辑
我的第一优先级是“CHE”,第二优先级是“KKR”,以便将数据表中的长度和供应商获取到报告表中。
场景一;
如果数据表中有两个不同的供应商{“CHE”和“KKR”},那么我想根据项目在报告表中获取针对“CHE”的数据(长度和供应商)。 (请参阅“数据”和“报告”表中的第 123 和 5678 项)
场景2;
如果供应商没有根据项目重复,并且项目在数据表中包含这些供应商{“CHE”或“KKR”}中的任何一个,则在这些场景中,针对报告表中的项目提取数据(长度和供应商)基于数据表中的可用性。 (请参阅“数据”和“报告”表中的项目5555、6666、9876和2345)
场景 3;
如果供应商没有根据项目重复,并且项目包含这些供应商{“CHE”或“KKR”}中的任何一个,但在这些场景中的数据表中长度和供应商不同,则返回文本“混合”根据项目在报表表中属于(列;长度或供应商或两者)。 (请参阅“数据”和“报告”两个表中的项目123456和567)
如果两个不同的供应商 {“CHE” & “KKR”} 用于数据表中的同一项目,但在这种情况下,长度和供应商在数据表中是可变的,则返回文本“混合”属于(列;要么长度或供应商或两者)在报告表中根据项目。 (请参阅“数据”和“报告”两个表中的第 116 项)
场景 5;
如果在日期表中没有找到记录,则根据项目在报告表中返回“NA”。 (请参考表4444、12、10报告项目)
我正在寻找计算列选项以实现我的结果。
当前逻辑
我为供应商优先级的订单创建了新表
我为运行计数和唯一计数创建了两个帮助列
最后我在报告表中应用以下计算列
LENGTH = LOOKUPVALUE(
DATA[Length],
DATA[ITEM],REPORT[ITEM],
DATA[UNIQUE_COUNT],1,"NA")
它几乎可以正常工作,但如果我想要在报告表中“混合”,它会给出错误的结果(项目 123456 和 567)。我以红色和绿色的快照突出显示供您参考。
我的最终结果是这样的
特此附上 PowerBi 文件供您参考https://www.dropbox.com/s/p81uy12tfh1htwu/AUOM1.pbix?dl=0
请给点建议。
【问题讨论】:
-
描述你试图解决的实际业务问题而不是你尝试的解决方案总是有用的,它本身可能存在缺陷(而且很可能只是它的外观)。请更详细地描述业务逻辑 - 您想向报告用户呈现什么以及您拥有哪些源数据。
-
非常感谢您的回复和建议。我在原始帖子中更新了更多细节和逻辑。如果您有时间,请告诉我,如果您需要更多详细信息,请告诉我。
标签: if-statement powerbi dax powerquery powerbi-desktop