我想在 Excel 列表中搜索单词“dog”,它可以工作,但如果单词是“good dog”,它就检测不到。
=LOOKUP(2;1/(C6:AH6="狗");ROW(C:AH))
答案1
答案2
下面可以做到这一点:
=XMATCH("*dog*",C6:AH6,2,-1)
第三个参数允许您使用通配符,第四个参数允许您从后到前搜索,以便您首先获得最后的匹配项。
它会返回最后匹配项所在的相对列。例如,第 9 列。如果您想要绝对列,则必须进行转换,或者使用 A6:AH6 进行匹配(因为它首先查找到 END,即使 A 列或 B 列有虚假匹配,也不会找到任何匹配项,除非它根本不存在于相关列(C-AH)中,并且它会直接为您提供列号。如果只需要相对列,则无需担心。
如果使用不带的旧版 Excel XMATCH
,另一种反转列(或行,因为需要查找表中最后一次出现的内容)顺序的方法是使用INDEX
,对于列,使用COLUMNS(C6:AH6)+1-COLUMN(C6:AH6), or if there are only a few columns, type out the array constant for them (so, if six columns, it would be
{6,5,4,3,2,1}` - 注意反转?)。即使在这里,输入 32 个左右的数字也不算难(好吧,也不算太难),但它不允许在不重新输入的情况下插入或添加更多数字。
同样简单直接的是,下面的方法XLOOKUP
也可以:
=XLOOKUP("*dog*",C6:AH6,COLUMN(C:AH),,2,-1)
出于同样的原因。由于参数,它直接给出绝对列号COLUMN(C:AH)
,但可以更改为SEQUENCE(1,COLUMNs(C:AH))
给出相对列号。其他相对/绝对列号方法比比皆是。
(顺便说一下,使用TRANSPOSE
让右-左变成上下,反之亦然。但使用上面的行/列反转技术,您可以获得所有四种转置。)