Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 基于if语句的Power-Bi-DAX度量索引匹配_If Statement_Powerbi_Multi Index_Powerbi Desktop - Fatal编程技术网

If statement 基于if语句的Power-Bi-DAX度量索引匹配

If statement 基于if语句的Power-Bi-DAX度量索引匹配,if-statement,powerbi,multi-index,powerbi-desktop,If Statement,Powerbi,Multi Index,Powerbi Desktop,我有两个表,表1名为“数据”,表2名为“报告” 表2(报告)标题名为“项目”、“水果清单”、“区号”、“语言代码”、“销售代码”“连接”和“状态”。有时,表2中根据标题有空白列。 表1(数据)标题名称为“水果列表”、“区号”、“语言代码”、“销售代码”和“连接” 为了合并查询(表2到表1),我为两个表创建了“连接”列。我之所以不直接合并该表,是因为它将在表2中(报表)创建大量重复列 基于“Concatenate”列合并表后,我为状态列创建了if条件-“Yes”或“No” 现在我想在这里实现的

我有两个表,表1名为“数据”,表2名为“报告”

表2(报告)标题名为“项目”、“水果清单”、“区号”、“语言代码”、“销售代码”“连接”和“状态”。有时,表2中根据标题有空白列。

表1(数据)标题名称为“水果列表”、“区号”、“语言代码”、“销售代码”和“连接” 为了合并查询(表2到表1),我为两个表创建了“连接”列。我之所以不直接合并该表,是因为它将在表2中(报表)创建大量重复列

基于“Concatenate”列合并表后,我为状态列创建了if条件-“Yes”或“No”

现在我想在这里实现的是,基于状态列,我想根据表2中的标题“水果列表1”、“区域代码1”、“语言代码1”、“销售代码1”(报告)填充其他状态列-“错误”或“无错误”

如果状态列为“是”,则根据表2(报告)中的标题“水果列表1”、“区域代码1”、“语言代码1”、“销售代码1”返回输出“无错误”。H列:K我的输出列

如果状态列为“否”,则根据表2中的标题“水果列表1”、“区域代码1”、“语言代码1”、“销售代码1”(报告)返回输出“错误”。列H:K我的输出列

文件附于此处,供您参考


您需要在Power Query Editor中进行一些转换才能应用以获得所需的输出。下面是来自高级编辑器的代码-

let
    Source = Excel.Workbook(File.Contents("C:\Users\Khademur Rabbani\Downloads\INDEX MATCH(OK,YES).xlsx"), null, true),
    REPORT_Sheet = Source{[Item="REPORT",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(REPORT_Sheet, [PromoteAllScalars=true]),
    #"Removed Blank Rows" = Table.SelectRows(#"Promoted Headers", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
    #"Removed Columns" = Table.RemoveColumns(#"Removed Blank Rows",{"REPORT.CONCATENATE", "DATA.CONCATENATE", "STATUS", "FRUIT LIST_1", "AREA CODE_2", "LANGUAGE_3", "SALES CODE_4"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"FRUIT LIST", type text}, {"AREA CODE", type text}, {"LANGUAGE", type text}, {"SALES CODE", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1, Int64.Type),
    #"Reordered Columns" = Table.ReorderColumns(#"Added Index",{"Index", "FRUIT LIST", "AREA CODE", "LANGUAGE", "SALES CODE"}),
    #"Merged Queries" = Table.NestedJoin(#"Reordered Columns", {"FRUIT LIST"}, #"DATA (2)", {"FRUIT LIST"}, "DATA (2)", JoinKind.LeftOuter),
    #"Added Custom" = Table.AddColumn(#"Merged Queries", "Custom", each [#"DATA (2)"][FRUIT LIST]),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each List.Max([Custom])),
    #"Merged Queries1" = Table.NestedJoin(#"Added Custom1", {"FRUIT LIST", "AREA CODE"}, #"DATA (2)", {"FRUIT LIST", "AREA CODE"}, "DATA (2).1", JoinKind.LeftOuter),
    #"Added Custom2" = Table.AddColumn(#"Merged Queries1", "Custom.2", each [#"DATA (2).1"][AREA CODE]),
    #"Added Custom3" = Table.AddColumn(#"Added Custom2", "Custom.3", each List.Max([Custom.2])),
    #"Merged Queries2" = Table.NestedJoin(#"Added Custom3", {"FRUIT LIST", "LANGUAGE"}, #"DATA (2)", {"FRUIT LIST", "LANGUAGE"}, "DATA (2).2", JoinKind.LeftOuter),
    #"Added Custom4" = Table.AddColumn(#"Merged Queries2", "Custom.4", each [#"DATA (2).2"][LANGUAGE]),
    #"Added Custom5" = Table.AddColumn(#"Added Custom4", "Custom.5", each List.Max([Custom.4])),
    #"Merged Queries3" = Table.NestedJoin(#"Added Custom5", {"FRUIT LIST", "SALES CODE"}, #"DATA (2)", {"FRUIT LIST", "SALES CODE"}, "DATA (2).3", JoinKind.LeftOuter),
    #"Added Custom6" = Table.AddColumn(#"Merged Queries3", "Custom.6", each [#"DATA (2).3"][SALES CODE]),
    #"Added Custom7" = Table.AddColumn(#"Added Custom6", "Custom.7", each List.Max([Custom.6])),
    #"Removed Columns1" = Table.RemoveColumns(#"Added Custom7",{"DATA (2)", "Custom", "DATA (2).1", "Custom.2", "DATA (2).2", "Custom.4", "DATA (2).3", "Custom.6"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"Custom.1", "FRUIT LIST 1"}, {"Custom.3", "AREA CODE 2"}, {"Custom.5", "LANGUAGE 3"}, {"Custom.7", "SALES CODE 4"}}),
    #"Added Custom8" = Table.AddColumn(#"Renamed Columns", "STATUS", each if 
    [FRUIT LIST 1] <> null 
    and [AREA CODE 2] <> null 
    and [LANGUAGE 3] <> null 
    and [SALES CODE 4] <> null then "NO ERROR" 
else "ERROR"),
    #"Reordered Columns1" = Table.ReorderColumns(#"Added Custom8",{"Index", "FRUIT LIST", "AREA CODE", "LANGUAGE", "SALES CODE", "STATUS", "FRUIT LIST 1", "AREA CODE 2", "LANGUAGE 3", "SALES CODE 4"}),
    #"Added Custom9" = Table.AddColumn(#"Reordered Columns1", "FRUIT_LIST_1", each if [FRUIT LIST 1] = null then "ERROR" else "NO ERROR"),
    #"Added Custom10" = Table.AddColumn(#"Added Custom9", "AREA_CODE_2", each if [AREA CODE 2] = null then "ERROR" else "NO ERROR"),
    #"Added Custom11" = Table.AddColumn(#"Added Custom10", "LANGUAGE_3", each if [LANGUAGE 3] = null then "ERROR" else "NO ERROR"),
    #"Added Custom12" = Table.AddColumn(#"Added Custom11", "SALES_CODE_4", each if [SALES CODE 4] = null then "ERROR" else "NO ERROR"),
    #"Removed Columns2" = Table.RemoveColumns(#"Added Custom12",{"FRUIT LIST 1", "AREA CODE 2", "LANGUAGE 3", "SALES CODE 4"})
in
    #"Removed Columns2"
let
Source=Excel.Workbook(File.Contents(“C:\Users\Khademur Rabbani\Downloads\INDEX MATCH(OK,YES).xlsx”)、null,true),
报告单=来源{[Item=“REPORT”,Kind=“Sheet”]}[Data],
#“Promoted Headers”=表.PromoteHeaders(报告表[PromoteAllScalars=true]),
#“删除的空行”=表.SelectRows(#“升级的标题”,每个不是列表.IsEmpty(列表.RemoveMatchingItems(Record.FieldValues(#),{”,“null})),
#“删除的列”=表.RemoveColumns(#“删除的空行”、{“报告.连接”、“数据.连接”、“状态”、“水果列表_1”、“区号_2”、“语言_3”、“销售代码_4”}),
#“已更改类型”=表.TransformColumnTypes(#“已删除列”、{{“水果列表”、类型text}、{“区号”、类型text}、{“语言”、类型text}、{“销售代码”、类型text}),
#“添加的索引”=表.AddIndexColumn(#“已更改的类型”、“索引”、1、1、Int64.Type),
#“重新排序的列”=表。重新排序的列(#“添加的索引”、{“索引”、“水果列表”、“区号”、“语言”、“销售代码”}),
#“合并查询”=表.NestedJoin(#“重新排序的列”,{“结果列表”},#“数据(2)”,{“结果列表”},“数据(2)”,JoinKind.LeftOuter),
#“添加的自定义”=Table.AddColumn(#“合并查询”,“自定义”,每个[#“数据(2)”][结果列表]),
#“Added Custom1”=Table.AddColumn(#“Added Custom”、“Custom.1”,每个List.Max([Custom]),
#“合并查询1”=表.NestedJoin(#“添加的自定义1”、{“水果列表”、“区号”}、#“数据(2)”、{“水果列表”、“区号”}、数据(2.1)、JoinKind.LeftOuter),
#“添加的Custom2”=Table.AddColumn(#“合并查询1”、“Custom.2”、每个[#“数据(2).1”][区号],
#“添加的Custom3”=Table.AddColumn(#“添加的Custom2”、“Custom.3”、每个List.Max([Custom.2]),
#“Merged Queries2”=Table.NestedJoin(#“Added Custom3”、{“Frient LIST”、“LANGUAGE”}、#“DATA(2)”、{“Frient LIST”、“LANGUAGE”}、“DATA(2).2”、JoinKind.LeftOuter),
#“添加的Custom4”=Table.AddColumn(#“合并的查询2”、“Custom.4”,每个[#“数据(2.2”)][语言],
#“添加的Custom5”=Table.AddColumn(#“添加的Custom4”、“Custom.5”、每个List.Max([Custom.4]),
#“Merged Queries3”=Table.NestedJoin(#“Added Custom5”、{“水果列表”、“销售代码”}、#“数据(2)”、{“水果列表”、“销售代码”}、数据(2.3)、JoinKind.LeftOuter),
#“添加的Custom6”=Table.AddColumn(#“合并查询3”、“Custom.6”,每个[#“数据(2).3”][销售代码]),
#“Added Custom7”=Table.AddColumn(#“Added Custom6”、“Custom.7”,每个List.Max([Custom.6]),
#“删除的列1”=表.RemoveColumns(#“添加的自定义7”、{“数据(2)”、“自定义”、“数据(2.1)”、“自定义.2”、“数据(2.2)”、“自定义.4”、“数据(2.3)”、“自定义.6”}),
#“重命名列”=Table.RenameColumns(#“已删除列1”、{{“Custom.1”、“水果列表1”}、{“Custom.3”、“区号2”}、{“Custom.5”、“语言3”}、{“Custom.7”、“销售代码4”}),
#“添加的Custom8”=Table.AddColumn(#“重命名的列”、“状态”,每个if
[水果列表1]空
和[区号2]空
和[语言3]空
[SALES CODE 4]为空,则为“无错误”
否则为“错误”),
#“重新排序的列1”=表。重新排序的列(#“添加的客户8”、{“索引”、“水果列表”、“区号”、“语言”、“销售代码”、“状态”、“水果列表1”、“区号2”、“语言3”、“销售代码4”}),
#“添加的Custom9”=Table.AddColumn(#“重新排序的列1”、“水果列表1”,如果[水果列表1]=null,则为“错误”,否则为“无错误”),
#“Added Custom10”=Table.AddColumn(#“Added Custom9”、“AREA_CODE_2”,如果[区号2]=null,则为“ERROR”,否则为“NO ERROR”),
#“Added Custom11”=Table.AddColumn(#“Added Custom10”、“LANGUAGE_3”,如果[LANGUAGE 3]=null,则为“ERROR”,否则为“NO ERROR”),
#“Added Custom12”=Table.AddColumn(#“Added Custom11”、“SALES_CODE_4”,如果[SALES CODE 4]=null则为“ERROR”,否则为“NO ERROR”),
#“Removed Columns 2”=Table.RemoveColumns(#“Added Custom12”、{“水果列表1”、“区号2”、“语言3”、“销售代码4”})
在里面
#“已删除列2”
这是输出-


由于代码/步骤非常庞大,请从此处查找报告文件。请检查表报表(2)数据(2)

的转换,您能就此线程向任何人提供建议吗?