【问题标题】:If string contains text from list, write matched text to cell如果字符串包含列表中的文本,则将匹配的文本写入单元格
【发布时间】:2019-12-18 06:41:17
【问题描述】:

我正在处理 A 列中包含关键短语、文本字符串的大型 Google 电子表格。我想根据另一个工作表中的关键字列表搜索 A 列。当关键字与 A 列中字符串中的单词匹配时,我想将相邻单元格中的该单词打印到 A 列。

这是一个可以使用的简单电子表格,我认为它展示了我正在尝试做的事情。

https://docs.google.com/spreadsheets/d/1tNcroABVP0UdP4CiJldxLZgdrJF33TYT4mL1DZJfD1Q/edit?usp=sharing

【问题讨论】:

    标签: regex google-sheets google-sheets-formula array-formulas textjoin


    【解决方案1】:

    我想在 A 列的相邻单元格中打印该单词

    =ARRAYFORMULA(IFNA(REGEXEXTRACT(A2:A, LOWER(TEXTJOIN("|", 1, 'KEYWORD LIST'!A2:A)))))
    

    【讨论】:

    • 这里是完全匹配且首字母大写的公式。非常感谢! =ARRAYFORMULA(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(PROPER(IFNA(REGEXEXTRACT(IFERROR(SPLIT(LOWER(A2:A10), ""))), LOWER("^"&TEXTJOIN("$|^", 1, '关键字列表'!A2:A)&"$")))),,999^99))), " ", ", "))
    • 还有一个问题...我的一些字符串有数字(1、2、3 等)。当公式应用于那些它返回#VALUE!。我怎样才能让它像文本一样读取和打印数字?
    • 试试:=ARRAYFORMULA(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(PROPER(IFNA(REGEXEXTRACT(TO_TEXT(IFERROR(SPLIT(LOWER(A2:A10), " "))), LOWER("^"&TEXTJOIN("$|^", 1, 'KEYWORD LIST'!A2:A)&"$"))))),,999^99))), " ", ", "))
    • 如何让公式识别短语而不是单个单词?例如,如果我的关键字列表中包含短语“dress shoes”。现在它正在识别一个单词,所以我可以添加单词“dress”和“shoe”,然后在单元格中呈现为“Dress,Shoe”。但我希望它只在列表中找到“礼服鞋”并在单元格中呈现“礼服鞋”。想法?
    【解决方案2】:

    试试这个(放在B2):

    =arrayformula(if(ISNUMBER(find(
            transpose({'KEYWORD LIST'!$A$2:$A$6}),A2:A6)), 
            transpose({'KEYWORD LIST'!$A$2:$A$6}),"")) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2018-05-11
      • 2022-12-01
      相关资源
      最近更新 更多