获取 excel 范围内的列匹配文本

问题描述 投票:0回答:2

我有很多列有值。

我想要一个特定的列(在该范围之外)从以“国家:”开头的单元格中获取值。

因此,例如,如果该范围包含(比方说)F1 中以“国家/地区:”开头的单元格,那么 A1 也应该具有该值,依此类推。

更准确地说,我想要像this.

这样的东西

谢谢!

excel excel-formula contains
2个回答
0
投票

有多种方法可以做到这一点

方法一:使用
FILTER()
SEARCH()

=FILTER(G2:K2,NOT(ISERROR(SEARCH("country: ",G2:K2))))

当没有包含“国家:”的行时返回

#CALC!
错误,当不止一行包含“国家:”时返回
#SPILL!
错误(除非有足够的空间来显示整个溢出)。见例子here

方法 2:使用
INDEX()
MATCH()
LEFT()

=INDEX(G2:K2,MATCH(TRUE,LEFT(G2:K2,9)="country: ",0))

当没有包含“国家:”的行时返回

#N/A
错误,当多行包含“国家:”时返回第一个匹配项。见例子here

方法 3:
XLOOKUP()
LEFT()

=XLOOKUP("country: ",LEFT(G2:K2,9),G2:K2)

当没有包含“国家:”的行时返回

#N/A
错误,当多行包含“国家:”时返回第一个匹配项。见例子here

方法 4:
CONCAT()
IF()
LEFT()

=CONCAT(IF(LEFT(G2:K2,9)="country: ",G2:K2,""))

当没有包含“国家/地区:”的行时返回空字符串,并且当多于一行包含“国家/地区:”时连接匹配项。见例子here

结论

还有很多其他方法可以解决您的问题。如果您可以指定在给定行中是否可以有一个或多个匹配列,以及您希望如何处理这种情况,则可能会向您展示更精确的解决方案。


-1
投票

我在土耳其语中使用 excel,单元格 F2 中的函数如下所示:

=EĞERHATA(DOLAYLI(ADRES(HÜCRE("sat";F2);HÜCRE("süt";F2)+BÜYÜK(EĞERHATA((BUL("country";$G2:$P2)>0);0)*$G$1:$P$1;TOPLA.ÇARPIM(EĞERHATA((BUL("country";$G2:$P2)>0);0)*1))));"")

我用的是英文翻译插件,可以是这样的:

=IFERROR(INDIRECT(ADDRESS(CELL("row",F2),CELL("col",F2)+LARGE(IFERROR((FIND("country",$G2:$P2)>0),0)*$G$1:$P$1,SUMPRODUCT(IFERROR((FIND("country",$G2:$P2)>0),0)*1)))),"")
笔记: 如果您为单元格 G1 = 1 / H1 = 2 提供数字,则此功能可以工作....

喜欢

page picture

© www.soinside.com 2019 - 2024. All rights reserved.