如何在 google 工作表中保留包含关键字的多行单元格行
How to Keep rows of multi-line cells containing a keyword in google sheets
我试图将包含单词“NOA”的行保留在 A 列中,该列具有许多多行单元格,可以在此 Google Spreadsheet.
中查看
如果出现“NOA”,我想保留这条线。输入和输出应该看起来像我用太多辅助细胞“工作”的图像。这可以组合成一个公式吗?
理论方法:
我一直在考虑三种方法来解决这个问题:
- ARRAYFORMULA(REGEXREPLACE - 无法让它工作
- JOIN(FILTER(REGEXMATCH(TRANSPOSE - 显示承诺,因为它在多个步骤中工作
- 使用 QUERY 函数 - 不熟悉 w/ 函数,但想知道此函数是否有快速解决方案
实践尝试:
第一种方法:首先,我尝试使用 REGEXEXTRACT 提取其中没有 NOA 的所有内容,Regex 在 demo 中工作但在工作表中无法正常工作。我认为这可能是一种获取值的简洁方法,也许我的 REGEX 技能更好?
ARRAYFORMULA(REGEXREPLACE(A1:A7, "^(?:[^N\n]|N(?:[^O\n]|O(?:[^A\n]|$)|$)|$)+",""))
我认为 Regex 因为过于复杂,在 Google 中不起作用或者公式可能可以改进,但是因为 Google RE2 有局限性,它使得做某些事情变得更加困难。
第二种方法:
然后我想到了另一种方法,它似乎可以分两个阶段工作(使用多个辅助细胞),但我想用一个方程来完成。
=TRANSPOSE(split(A2,CHAR(10)))
=TEXTJOIN(CHAR(10),1,FILTER(C2:C7,REGEXMATCH(C2:C7,"NOA")))
问题:
- 可以使用索引或数组组合这些公式并将其应用于整个列吗?
- 或者,我的第一种方法中的 REGEX 可以修改吗?
- 是否有使用 Query 的更快解决方案?
分享Google spreadhseet is here.
预先感谢您的帮助。
您可以通过以下一种方式做到这一点:
=index(substitute(substitute(transpose(trim(
query(substitute(transpose(if(regexmatch(split(
filter(A2:A,A2:A<>""),char(10)),"NOA"),split(
filter(A2:A,A2:A<>""),char(10)),))," ","❄️")
,,9^9)))," ",char(10)),"❄️"," "))
首先,我们按换行符(字符 10)拆分数据,然后过滤掉不包含 NOA 的行,最后我们使用 "query smush" 将所有内容重新组合在一起。
我试图将包含单词“NOA”的行保留在 A 列中,该列具有许多多行单元格,可以在此 Google Spreadsheet.
中查看如果出现“NOA”,我想保留这条线。输入和输出应该看起来像我用太多辅助细胞“工作”的图像。这可以组合成一个公式吗?
理论方法: 我一直在考虑三种方法来解决这个问题:
- ARRAYFORMULA(REGEXREPLACE - 无法让它工作
- JOIN(FILTER(REGEXMATCH(TRANSPOSE - 显示承诺,因为它在多个步骤中工作
- 使用 QUERY 函数 - 不熟悉 w/ 函数,但想知道此函数是否有快速解决方案
实践尝试:
第一种方法:首先,我尝试使用 REGEXEXTRACT 提取其中没有 NOA 的所有内容,Regex 在 demo 中工作但在工作表中无法正常工作。我认为这可能是一种获取值的简洁方法,也许我的 REGEX 技能更好?
ARRAYFORMULA(REGEXREPLACE(A1:A7, "^(?:[^N\n]|N(?:[^O\n]|O(?:[^A\n]|$)|$)|$)+",""))
我认为 Regex 因为过于复杂,在 Google 中不起作用或者公式可能可以改进,但是因为 Google RE2 有局限性,它使得做某些事情变得更加困难。
第二种方法:
然后我想到了另一种方法,它似乎可以分两个阶段工作(使用多个辅助细胞),但我想用一个方程来完成。
=TRANSPOSE(split(A2,CHAR(10)))
=TEXTJOIN(CHAR(10),1,FILTER(C2:C7,REGEXMATCH(C2:C7,"NOA")))
问题:
- 可以使用索引或数组组合这些公式并将其应用于整个列吗?
- 或者,我的第一种方法中的 REGEX 可以修改吗?
- 是否有使用 Query 的更快解决方案?
分享Google spreadhseet is here.
预先感谢您的帮助。
您可以通过以下一种方式做到这一点:
=index(substitute(substitute(transpose(trim(
query(substitute(transpose(if(regexmatch(split(
filter(A2:A,A2:A<>""),char(10)),"NOA"),split(
filter(A2:A,A2:A<>""),char(10)),))," ","❄️")
,,9^9)))," ",char(10)),"❄️"," "))
首先,我们按换行符(字符 10)拆分数据,然后过滤掉不包含 NOA 的行,最后我们使用 "query smush" 将所有内容重新组合在一起。