gpt4 book ai didi

excel - 在 Power Query 中使用文本字符串查找所有代码组合

转载 作者:行者123 更新时间:2023-12-04 22:12:46 26 4
gpt4 key购买 nike

我需要的是使用文本字符串(A2 中的长文本字符串)从 Codes(表 1)中找到所有代码组合,并获得结果表(表 2)中的所有组合。例如,您有字符串的 CE1 部分,并且可能会发生许多组合,如您在结果中看到的...
我在 Power Query 中尝试过,但是当它具有诸如 CE1、CE2、CE3、CE4 或其他的逗号值时,我无法弄清楚如何在行级别上查找。在我的情况下,它只能匹配一个和第一个值,但不能匹配整个字符串。
enter image description here
我想在 Power Query 中有解决方案(如果可能的话)!
这是公式解决方案:

=UNIQUE(FILTER(Table3[Ausgang];LET(X;TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A2;",";"_");"_";"</s><s>")&"</s></t>";"//s"));MMULT(IFERROR(FIND(","&X&",";","&Table3[Ausgang]&",");0);SEQUENCE(COUNTA(X);;;0)));"None Found"))
https://docs.google.com/spreadsheets/d/1bg7aodiJb-A1hOBUlBxc-25ERn2Pn5bY/edit?usp=sharing&ouid=101738555398870704584&rtpof=true&sd=true

最佳答案

在 powerquery 中,将查找单元格加载到名为 的查询中表3 (data..from table/range [x]columns ) 然后关闭文件并加载。假设列名为 字符串
加载您的 T1 表(数据 .. 来自表/范围 [x] 列)并添加列 .. 自定义列 ... 与公式

=List.ContainsAny(Text.Split([Codes],","),Text.Split(Table.ReplaceValue(Table3,",","_",Replacer.ReplaceText,{"String"})[String]{0},"_"))
然后使用列顶部的箭头过滤 TRUE 并右键单击以删除额外的列
下面是完整的示例代码,将其拆分得更好。假设其他查询名为 表3 与列 字符串 .替换 T_1 使用 powerquery 为您的表提供的名称
let Source = Excel.CurrentWorkbook(){[Name="T_1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Codes", type text}}),
FindList = Text.Split(Table.ReplaceValue(Table3,",","_",Replacer.ReplaceText,{"String"})[String]{0},"_"),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.ContainsAny(Text.Split([Codes],","),FindList)),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = true)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"})
in #"Removed Columns"
诀窍是(a)在源单元格中用 _ 替换,然后 Text.Split 使列表(b)对第二个表中的每一行执行相同操作,并使用 List.ContainsAny 查找匹配项
enter image description here

关于excel - 在 Power Query 中使用文本字符串查找所有代码组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71729678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com