【问题标题】:How to select elements of a column of which a corresponding columns contains elements that are in a given list?如何选择对应列包含给定列表中元素的列的元素?
【发布时间】:2020-01-30 21:18:22
【问题描述】:

我在 Google 表格中有一个非常棘手的问题要解决,这一定不会太难,但不知何故我没能解决。这是一张大片,但归结为以下几点:

两个 Google 表格列:

Data 1  Data 2      
aa     2008             
bb     2008             
cc     2009             
dd     2010         
ee     2011         
ff     2012         
bb     2013         
gg     2014         
cc     2015         
hh     2016         
ii     2017 

(马克:第1列有重复出现的元素)

问题:我有一个子列表,一个包含一堆元素的列,比如:aa、bb 和 cc

我想要一个过滤器来创建一个列表,其中包含“包含”(至少)该列表中的一个元素的所有年份。在此示例中(使用 Unique),这将导致列表 [2008, 2009, 2013, 2015]

我尝试过过滤器/错误/匹配/查找/Vlookup,但我无法管理。

我在论坛上搜索了很多,但找不到这种特殊情况。 有人知道如何在 Google 表格中解决这个问题吗?

【问题讨论】:

    标签: regex google-sheets filter google-sheets-formula textjoin


    【解决方案1】:

    =UNIQUE(FILTER(B:B,REGEXMATCH(A:A,TEXTJOIN("|",1,D:D))))

    TEXTJOIN("|",1,D:D) 将创建一个正则表达式来检查任何匹配:aa|bb|cc。

    注意:正则表达式区分大小写:aa 也不等于 Aa。

    【讨论】:

    • 太棒了,谢谢!!!!它有效,我已经在更大的多标签表中实现了它。这花了我很多时间,尽管我对此很有经验,但我永远不会想到 TEXTJOIN 的这个技巧。很有创意,给我留下了深刻的印象,谢谢!!!
    【解决方案2】:

    在某些时候,您可能需要摆脱区分大小写并增加准确性:

    =UNIQUE(FILTER(B:B, REGEXMATCH(LOWER(A:A), "^aa$|^bb$|^cc$")))
    

    或:

    =UNIQUE(FILTER(B:B, REGEXMATCH(LOWER(A:A), "^"&TEXTJOIN("$|^", 1, D:D)&"$")))
    

    【讨论】:

    • 或在正则表达式中使用不区分大小写的标志:(?i)camelcase
    猜你喜欢
    • 2022-08-19
    • 1970-01-01
    • 2018-04-19
    • 2020-01-10
    • 2021-03-02
    • 2016-04-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    相关资源
    最近更新 更多