通过拆分字符串来过滤值并连接多个值

通过拆分字符串来过滤值并连接多个值

我正在创建文本生成的 Excel 电子表格。

我有一个电子表格看起来像这样:

0    1      2
A; text1; text2;
B; text3; text4;
C; text5; text6;

我需要实现的目标:

Input: str(A,B) with index 1
Output: text1text3 (concatenated / joined strings)

我尝试过 VLOOKUP 和 FILTER =FILTER(Data!B3:C10, SPLIT(C5, ",")=Data!A3:A10),但是它不起作用,并且需要一行(FILTER RANGE REQUIRES SINGLE COLUMN OR ROW)

错误信息: 在此处输入图片描述

答案1

由于我无法发表评论,因此有很多事情我无法询问,但是这里有一个基本方法:

=CONCAT(  VLOOKUP(  FILTERXML("<group><element>" & SUBSTITUTE(E2, ",", "</element><element>") & "</element></group>","/*/*"), A1:C4, MATCH(F2,A1:C1,0), FALSE)  )

我假设输入位于单元格 E2 和 F2 中,表格显示在 A1:C4 中。我还假设;是试图在此处为问题创建表格的产物。如果 是;有意为之,您只需将字符串操作添加到 以将FILTERXML()它们添加到它将创建的输入片段中,方法是;在 中的字符串前添加SUBSTITUTE(),在 之后添加关闭 XML 表达式的字符串,SUBSTITUTE()并使用字符串操作将它们从 返回的“textXXX”片段中删除VLOOKUP()。但它们看起来确实像是产物,所以我在编写上面的内容时将它们取出。

这个FILTERXML()技巧现在已经过时了,它基本上就是将输入字符串拆开(str(A,B))。有很多方法可以做到这一点,但这个FILTERXML()技巧的好处是,您不必费心弄清楚如何处理该字符串中不同数量的部分,因为它会为您完成。

将其放入VLOOKUP()意味着VLOOKUP()查找值参数具有一对二到多对多的输入。意味着它将查找所有输入,而您不必考虑要提供多少输入。然而,因为VLOOKUP()只会接受一个解析为“数组常量”的输入(在此示例中,FILTERXML()创建数组常量{"A";"B"}),所以第二个输入(1在此示例中)不能是创建多个输入的东西。

更严厉地说,它不会导致错误……Excel 只是忽略了它只取这种返回的第一个元素的想法并给出该结果。所以你可能很长一段时间都没有注意到公式确实失败了。但由于你使用只有 A 列中查找值的多个输入来询问,所以它是 A-OK。但不像你想象的那样可扩展。

您也不必担心查找数组是作为列创建的({"A";"B"}注意;分隔它们...如果它为返回创建了一行,它将用{"A","B"}分隔,元素)还是作为一行创建,因为您将只返回一行/列向量,并且将它们连接起来将以任何方式将元素作为单个项目返回。很高兴没有提供细节。

然后我习惯CONCAT()加入它们,因为这种用法非常简单。通常我会去,但既然这个技巧很容易做到,TEXTJOIN()为什么要添加额外的东西呢?CONCAT()

请注意使用MATCH()第二个输入来搜索与其匹配的数据范围中的列。通过从 A1 而不是 B1 开始,它返回的值将与数据范围中的“第 X”列数字匹配,就像VLOOKUP()要求的那样,它自己返回,因此无需添加+1或类似的东西,因为它会直接获取它。这在这里似乎很明显,因为您的索引编号从 A 列开始,但许多像这样的表格不会这样做,而是将 A1 留空并从 B1 开始对这些索引值进行编号。从 B1 开始意味着返回需要进行MATCH()调整(+1在本例中)以返回正确的表格列号,这样VLOOKUP()就不会返回错误的列。

在这种情况下,MATCH()(或XMATCH())是完美的,可以完美地满足您的需求。但在许多情况下,HLOOKUP()对于其他情况所需的类似任务,使用它可能是合适的。这并不是说标题是数字而不是文本,只是您将其输入到VLOOKUP()需要简单数字而不是正式列号(如COLUMN()用于查找)的地方。不过,将返回值输入到不同的函数中,您可能需要记住HLOOKUP()

如果您确实需要在索引输入中容纳多个值,那么INDEX()在这里强制使用可能更容易,尽管FILTERXML()可以重新调整技巧以具有第二个“组/元素”级别,并且可以使其产生对的返回,然后这些对本身需要分开,然后才能以任何顺序将各个部分合并为最终结果。然而,其中的第二和第三个 XML 分组需要一些思考,因为它们总是依赖于输入的确切布局/来源、数据的实际物理布局方式以及最终必须如何组合在一起。

相关内容