从下表可以看出:
ID Status
001 Done
002 Done
003 Done
004 Error
005 Done
006 Error
007 Done
008 Done
009 Error
我想提取所有带有“错误”的 ID 的列表/字符串。换句话说,一个如下所示的单元格:
004, 006, 009
提前致谢。
答案1
您可以使用免费的 Microsoft Excel 插件Power Query(来自 Excel 2010)过滤并汇总有错误的 ID。
您可以通过 UI 转换数据。但是,您需要直接在高级编辑器中修改一些步骤。
这里有两个脚本(您可以将其粘贴到高级编辑器中。确保您的表格源称为“Table1”):
第一个会给你这个输出:004、006、009
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Status", type text}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Status] = "Error")),
#"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"ID"}),
#"Transposed Table" = Table.Transpose(#"Removed Other Columns"),
#"List ID" = Table.ToList(#"Transposed Table", Combiner.CombineTextByDelimiter(", "))
in
#"List ID"
第二个将在两个单行上分离偶数和奇数 ID:
009
004、006
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Status", type text}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Status] = "Error")),
#"Added Custom" = Table.AddColumn(#"Filtered Rows", "IsEven", each if Number.IsEven(Number.From([ID])) = true then "even" else "uneven"),
#"Filtered Even" = Table.SelectRows(#"Added Custom", each ([IsEven] = "even")),
#"Removed Other Columns Even" = Table.SelectColumns(#"Filtered Even",{"ID"}),
#"Transposed Table Even" = Table.Transpose(#"Removed Other Columns Even"),
#"List Even" = Table.ToList(#"Transposed Table Even", Combiner.CombineTextByDelimiter(", ")),
#"Table Even" =Table.FromValue(#"List Even"),
#"Filtered Uneven" = Table.SelectRows(#"Added Custom", each ([IsEven] = "uneven")),
#"Removed Other Columns Uneven" = Table.SelectColumns(#"Filtered Uneven",{"ID"}),
#"Transposed Table Uneven" = Table.Transpose(#"Removed Other Columns Uneven"),
#"List Uneven" = Table.ToList(#"Transposed Table Uneven", Combiner.CombineTextByDelimiter(", ")),
#"Table Uneven" =Table.FromValue(#"List Uneven"),
#"Appended Query" = Table.Combine({#"Table Uneven", #"Table Even"})
in
#"Appended Query"
试试 Power Query!在我看来,这是过去几年 Excel 中最强大的创新(除 Power Pivot 外)。
答案2
好的,我已经知道如何创建一个柱子所有正确答案:将其粘贴到 C1 中:
=IFERROR(INDEX(A$2:A$10,SMALL(IF($B$2:$B$10="错误",ROW(A$2:A$10)-ROW(A$2)+1),ROWS(A$2:A2))),"")
然后向下拖到 C10 即可查看所有结果,即
3
6
9
它没有连接结果,但是现在对我来说已经足够了。
但是,我不知道该怎么做二条件,例如,B 列中的单元格匹配“错误”和A 列中的值是偶数-有什么想法吗?