POWER BI-If 匹配从一个 table 到另一个 table 的多个列
POWER BI-If match multiple columns from one table to another table
我有两个表,分别是Table1和Table2,Table1是我的数据,Table2是报告。 Table 1 和 Table 2 包含以下 headers“水果清单”、“区号”和销售代码。在 Table 2 列 A 到 C 匹配自 Table 1 列 A 到 c 则状态为“是”,如果不匹配则状态为“否”。
我无法在此处使用合并查询选项,因为它会创建大量重复的订单项。 (我有大约 322000 个行项目的独特数据库,当我尝试使用合并选项时,它会创建很多重复的行项目)所以我正在寻找 DAX 度量或 M 语言解决方案选项。
行项目 2 的示例;(在 Table 2 数据中)项目是 123 水果列表是“鳄梨”,区号是“3100”与我的主数据匹配 Table 1 因此状态为“是”。
行项目 5 的示例;(在 Table 2 数据中)项目是 126,水果列表是“鳄梨”,区号是“西”与我的主数据不匹配 Table 1 因此状态为“否”。
“鳄梨”“区号”仅属于以下销售代码(EU01,US,UK)。
行项目 19 的示例; 该项目是 56,水果列表是“西瓜”,没有区号。请参考上面提到的快照。
匹配条件:匹配的选择条件是两个表中的“水果清单”、“区号”和“销售代码”。
附上文件供您参考。
https://www.dropbox.com/s/a2a4fqng58c4z59/IF%20MATCH%20ONE%20SHEET%20TO%20ANOTHER%20SHEET.pbix?dl=0
https://www.dropbox.com/s/oebfzind62o68fg/IF%20MATCH.xlsx?dl=0
enter image description here
在该表之间创建关系。
首先创建列
在表 1 中:
JoinCol = COMBINEVALUES(" ",'TABLE1'[AREA CODE],'TABLE1'[SALES CODE],'TABLE1'[FRUIT LIST])
在表 2 中:
JoinCol = JoinCol = COMBINEVALUES(" ",'TABLE2'[AREA CODE],'TABLE2'[SALES CODE],'TABLE2'[FRUIT LIST])
然后你可以轻松地进行任何计算,例如表2:
Output = if(LOOKUPVALUE(TABLE1[JoinCol],TABLE1[JoinCol],TABLE2[JoinCol]) = BLANK(),"NO","YES")
您也可以尝试将 UNION 与 INTERSECT 和 EXCEPT 结合使用:
Table = UNION(
ADDCOLUMNS(INTERSECT(SUMMARIZECOLUMNS(TABLE1[FRUIT LIST],TABLE1[AREA CODE],TABLE1[SALES CODE]), SUMMARIZECOLUMNS(TABLE2[FRUIT LIST],TABLE2[AREA CODE],TABLE2[SALES CODE])), "IF?","YES"),
ADDCOLUMNS(EXCEPT(SUMMARIZECOLUMNS(TABLE2[FRUIT LIST],TABLE2[AREA CODE],TABLE2[SALES CODE]),SUMMARIZECOLUMNS(TABLE1[FRUIT LIST],TABLE1[AREA CODE],TABLE1[SALES CODE])),"IF?","NO"))
我有两个表,分别是Table1和Table2,Table1是我的数据,Table2是报告。 Table 1 和 Table 2 包含以下 headers“水果清单”、“区号”和销售代码。在 Table 2 列 A 到 C 匹配自 Table 1 列 A 到 c 则状态为“是”,如果不匹配则状态为“否”。
我无法在此处使用合并查询选项,因为它会创建大量重复的订单项。 (我有大约 322000 个行项目的独特数据库,当我尝试使用合并选项时,它会创建很多重复的行项目)所以我正在寻找 DAX 度量或 M 语言解决方案选项。
行项目 2 的示例;(在 Table 2 数据中)项目是 123 水果列表是“鳄梨”,区号是“3100”与我的主数据匹配 Table 1 因此状态为“是”。
行项目 5 的示例;(在 Table 2 数据中)项目是 126,水果列表是“鳄梨”,区号是“西”与我的主数据不匹配 Table 1 因此状态为“否”。
“鳄梨”“区号”仅属于以下销售代码(EU01,US,UK)。
行项目 19 的示例; 该项目是 56,水果列表是“西瓜”,没有区号。请参考上面提到的快照。
匹配条件:匹配的选择条件是两个表中的“水果清单”、“区号”和“销售代码”。
附上文件供您参考。
https://www.dropbox.com/s/a2a4fqng58c4z59/IF%20MATCH%20ONE%20SHEET%20TO%20ANOTHER%20SHEET.pbix?dl=0 https://www.dropbox.com/s/oebfzind62o68fg/IF%20MATCH.xlsx?dl=0 enter image description here
在该表之间创建关系。 首先创建列 在表 1 中:
JoinCol = COMBINEVALUES(" ",'TABLE1'[AREA CODE],'TABLE1'[SALES CODE],'TABLE1'[FRUIT LIST])
在表 2 中:
JoinCol = JoinCol = COMBINEVALUES(" ",'TABLE2'[AREA CODE],'TABLE2'[SALES CODE],'TABLE2'[FRUIT LIST])
然后你可以轻松地进行任何计算,例如表2:
Output = if(LOOKUPVALUE(TABLE1[JoinCol],TABLE1[JoinCol],TABLE2[JoinCol]) = BLANK(),"NO","YES")
您也可以尝试将 UNION 与 INTERSECT 和 EXCEPT 结合使用:
Table = UNION(
ADDCOLUMNS(INTERSECT(SUMMARIZECOLUMNS(TABLE1[FRUIT LIST],TABLE1[AREA CODE],TABLE1[SALES CODE]), SUMMARIZECOLUMNS(TABLE2[FRUIT LIST],TABLE2[AREA CODE],TABLE2[SALES CODE])), "IF?","YES"),
ADDCOLUMNS(EXCEPT(SUMMARIZECOLUMNS(TABLE2[FRUIT LIST],TABLE2[AREA CODE],TABLE2[SALES CODE]),SUMMARIZECOLUMNS(TABLE1[FRUIT LIST],TABLE1[AREA CODE],TABLE1[SALES CODE])),"IF?","NO"))