添加或VBA脚本添加filter命令为Excel
Google工作表具有语法的filter命令
=filter(Range, criteria 1, ... criteria n)
它返回一个数组。
我怎样才能在Excel中做到这一点?
例如:我有2列的范围,列1中有属性,列2中有完整的植物学名称。这个范围被命名为bot_name
在其他地方,我有一个细胞C1与“冷杉”,冷杉的属名。
在Google电子表格中,我可以这样做:
=UNIQUE(FILTER(Bot_Name,REGEXMATCH(Bot_Name,C1)))
对于范围中的每一行,如果REGEXMATCH返回true,则FILTER包含它。
filter和唯一是过滤function。
filterlogging:
https://support.google.com/docs/answer/3093197
从这我应该得到以下列表:
Abies balsamea Abies concolor Abies lasiocarpa var bifolia Abies veitch
我build议你使用公式,而不是Excelfilterfunction(这与你提到的FILTER
函数非常不同),因为我想你需要改变searchexpression式(例如Abies)的时候你的过滤数据就会改变。
首先,您需要检查哪些值符合您的标准:
我build议您使用COUNTIF
函数 – 它使您能够在searchexpression式中使用通配符 – 在末尾添加*以查找以“Abies”开头的所有内容。
所以在助手列中的公式如下所示:
=IF(COUNTIF(A2,$C$2 & "*")>0,A2,"")
稍后可以隐藏帮助程序列。 然后你需要删除重复项 – 所以下一个最后的公式将是一个非数组公式:
=INDEX($D$2:$D$15,MATCH(0,INDEX(COUNTIF($E$1:E1,$D$2:$D$15),0,0),0))
您的工作performance在看起来像这样在单元格C2中使用searchexpression式:
也使用IFERROR来删除有错误的单元格。 您也可以使用命名范围而不是$D$2:$D$15
来简化第二个公式。
在这里下载示例Excel表格。
这比使用数组的FILTER函数更复杂,我真的错过了Excel中的这个function。