Vba 是/否表、匹配和反向索引

Vba 是/否表、匹配和反向索引,vba,if-statement,indexing,excel-formula,match,Vba,If Statement,Indexing,Excel Formula,Match,我有一个表,里面有是和否的值。我需要一个公式来定位所有具有“Yes”值的单元格,并索引用于定义单元格的行(Apples、Orange、Pear)和列(Molly、Joe、Sarah)标题 然后获取定义的行和列信息,并将其放在第二个工作表的两列中 我想要的东西,将能够更新,如果是或否值改变 工作表1上的是/否表: Molly Joe Sarah Apples Y N Y Orange N Y N Pear Y

我有一个表,里面有是和否的值。我需要一个公式来定位所有具有“Yes”值的单元格,并索引用于定义单元格的行(Apples、Orange、Pear)和列(Molly、Joe、Sarah)标题

然后获取定义的行和列信息,并将其放在第二个工作表的两列中

我想要的东西,将能够更新,如果是或否值改变

工作表1上的是/否表:

Molly Joe Sarah Apples Y N Y Orange N Y N Pear Y N N 莫莉·乔·莎拉 苹果 橙色 梨 我希望它在工作表2中是什么样子:

Column A Column B Molly Apples Molly Pear Joe Orange Sarah Apple A列B列 莫莉苹果 茉莉梨 乔·奥兰治 莎拉苹果
  • 启动数据透视表向导。(键盘快捷键:Excel 2007上的ALT+D,P)对于“要分析的数据在哪里?”选择“多个合并范围数据透视表”。然后单击“下一步”。
  • 对于“您需要多少页面字段?”选择“我将创建自己的页面字段”。
  • 选择您的数据。单击下一步。
  • 双击“总计”值-位于数据透视表右下角的“总计”行和“总计”列交叉点处的值。
  • 查看结果。
  • 此答案仅扩展了DavePrillo在powerquery(获取和传输数据选项卡Excel 2016、2013 powerquery选项卡,安装microsoft免费powerquery后),使用表名为表2的表中的数据在此处给出的答案

    M代码:

    let
        Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Molly", type text}, {"Joe", type text}, {"Sarah", type text}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
        #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([Value] = "Y")),
        #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Attribute", "Column1", "Value"}),
        #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Value"}),
        #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute", "Column A"}, {"Column1", "Column B"}})
    in
        #"Renamed Columns"
    
    输入:

    let
        Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Molly", type text}, {"Joe", type text}, {"Sarah", type text}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
        #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([Value] = "Y")),
        #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Attribute", "Column1", "Value"}),
        #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Value"}),
        #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute", "Column A"}, {"Column1", "Column B"}})
    in
        #"Renamed Columns"
    

    输出:

    let
        Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Molly", type text}, {"Joe", type text}, {"Sarah", type text}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
        #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([Value] = "Y")),
        #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Attribute", "Column1", "Value"}),
        #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Value"}),
        #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute", "Column A"}, {"Column1", "Column B"}})
    in
        #"Renamed Columns"
    

    过程:

    let
        Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Molly", type text}, {"Joe", type text}, {"Sarah", type text}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
        #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([Value] = "Y")),
        #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Attribute", "Column1", "Value"}),
        #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Value"}),
        #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute", "Column A"}, {"Column1", "Column B"}})
    in
        #"Renamed Columns"
    

    可能重复的功能。或者,感谢您向我展示“反向枢轴”功能。它工作得很好。它是否能够随着Y/N表中数据的更改而更改,还是每次都必须运行它?您是否尝试过?