在 Excels Power Query 中,我有一个有点复杂的查询。在我正在处理的步骤中,我有一个名为“FinalTable”的表,我需要将数据从“C003”列中的单元格复制到同一列中的另一行。
要复制的单元格基于“C001”列中的值,要复制到的单元格基于“C002”列中的值 这是一个示例表。
C001 | C002 | C003 |
---|---|---|
场外 E. Florence Blvd | 10462 | |
地层:CL/SC | ||
层数:SC-SM/SP/SM | ||
地层:结束 | ||
场外 E. Florence Blvd:地层总计 |
目标是将(1,C003)中的数据复制到(5,C003)。这需要以编程方式完成,但是因为我将有不同的数据集,而这只是一个小样本。
为了实现此目的,我需要对非空白值的“C001”列进行评估。如果存在非空白值,则检查该值是否是“C002”列中单元格的子字符串如果是复制“C003”的值
结果表应如下所示:
C001 | C002 | C003 |
---|---|---|
场外 E. Florence Blvd | 10462 | |
地层:CL/SC | ||
层数:SC-SM/SP/SM | ||
地层:结束 | ||
场外 E. Florence Blvd:地层总计 | 10462 |
我之前完成过类似的任务,但跨行移动数据,而不是在列上上下移动数据。我还尝试制作第二个表,它是数据的子集,删除了不需要的所有行和列,然后将其用作参考来尝试检查,但我似乎无法让它工作。
非常感谢任何帮助,谢谢。
单向
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Duplicated Column" = Table.DuplicateColumn(Source, "C001", "zC001"),
#"Duplicated Column1" = Table.DuplicateColumn(#"Duplicated Column", "C003", "zC003"),
#"Filled Down" = Table.FillDown(#"Duplicated Column1",{"zC001", "zC003"}),
#"Added Custom" = Table.AddColumn(#"Filled Down", "Custom", each try if Text.Contains([C002],[zC001]) then [zC003] else null otherwise null),
#"Renamed Columns" = Table.RenameColumns(#"Added Custom",{{"C003", "xC003"}}),
#"Added Custom1" = Table.AddColumn(#"Renamed Columns", "C003", each [xC003] ?? "" & Text.From([Custom]) ?? ""),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"C003"}),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Removed Columns", {{"xC003", type text}, {"Custom", type text}}, "en-US"),{"xC003", "Custom"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"C003"),
#"Removed Columns1" = Table.RemoveColumns(#"Merged Columns",{"zC001", "zC003"})
in #"Removed Columns1"