Excel,如何在查找数组中使用文本函数而不添加另一列?

Excel,如何在查找数组中使用文本函数而不添加另一列?

如果我正在使用 vlookup 或匹配函数,但我需要对查找材料进行一些繁琐的操作,有没有办法在查找数组中执行此操作,而不是简单地添加另一列?

假设我有一个查找值“FOOBAR 123”,并且我想返回名为“FOO BAR123”的记录

理想情况下,我想做类似的事情

=MATCH(SUBSTITUTE(A1," ",""),SUBSTITUTE('Sheet1'!$A:A," ",""),0)

SUBSTITUTE查找数组将其破坏。

这是可能的

=MATCH(SUBSTITUTE(A1," ",""),'Sheet1'!$B:B,0)

并在 Sheet1 中添加一=SUBSTITUTE(A1," ","")列,但是有没有办法避免这样做?

答案1

也许我误解了你的问题,否则它应该对你有用。

=SUBSTITUTE(MATCH(A1,'Sheet1'!$A:A,0)," ","")

答案2

第一个公式很好,只要你将其提交为数组公式(即使用 CTRL+SHIFT+ENTER),但在这种情况下强烈建议你不要引用整个 A 列,否则这将导致极其耗费资源的公式。

将过程分成两列也使得计算不那么密集。

={MATCH(SUBSTITUTE(A1," ",""),SUBSTITUTE($A:$A8000," ",""),0)}

比以下两列解决方案更为密集

=SUBSTITUTE(A1," ","")                                   //in column B
=MATCH(SUBSTITUTE(A1," ",""),$B1:$B8000,0)

因为在第一种情况下,必须对每一行计算一次 A 列的替换,但在第二种情况下,只需计算一次 A 列的替换。

@XOR LX 回答。发布此帖是为了标记问题已解决,但 XOR LX 值得称赞。

相关内容