我怎样才能写一个Excel公式来返回基于单元格内容的范围内的值?
我怎样才能写一个Excel公式来检查一个单元格是否包含单独列出的单词,然后从指定范围内返回单个单个单词 ?
该公式必须指定单元格和范围 ,而不是将值限制在公式本身中。
例:
例如,公式正在写入单元格B1并引用单元格A1。 单元格A1包含文本“英国汽车保险”。 范围从单元格C1到单元格C10(C1:C10)。 在这个范围内,列出了10个国家,每个单元一个级联向下(例如:C1 =“uk”,C2 =“usa”,C3 =“法国”等)。
基于这个例子,B1中的公式应该从单元格范围(C1:C10)中拉回值“uk”,因为A1中的单元格包含“uk”的文本“英国汽车保险”。 “英国”的文本也存储在单元格C1中,所以这应该被拉回到B1中。
像这样的一个公式(现在远离我们的例子) 不适合我的目的:
=IF(COUNTIF(L5:L47,"FALSE"),"Portfolios Mismatched","Portfolios Matched")
C列中的国家范围可能会变得很大,因此任何尝试列出其内部值(而不是指范围)的公式都是不可扩展的。
使用INDEX和AGGREGATE:
=INDEX(C:C,AGGREGATE(15,6,ROW($C$1:INDEX(C:C,MATCH("zzz",C:C)))/(ISNUMBER(SEARCH(" " & $C$1:INDEX(C:C,MATCH("zzz",C:C)) & " "," " & A1 & " "))),1))
$C$1:INDEX(C:C,MATCH("zzz",C:C))
设置范围,它是dynamic的。 它将范围设置为只有那些值和更改值添加或从参考列表中删除。
search将search匹配。 " " &
和& " "
确保我们正在查找整个单词,所以我们不会在eric
和erica
类的东西上得到误报。
如果在参考单元中find一个单词,聚合将会find第一行。
索引返回该单词作为答案。