【问题标题】:How to Filter entire column containing a specific text and then remove that specific text from the filtered result in Google Sheets?如何过滤包含特定文本的整个列,然后从 Google 表格的过滤结果中删除该特定文本?
【发布时间】:2021-12-30 23:34:42
【问题描述】:

我有 A 列和 B 列的数据。

| Column A | Column B |
| -------- | -------- |
| AlexPaul.first    | 152      |
| LousieB.second   | 320      |
| ClaryA.thrid   | 777      |
| DukeGat.last   | 555      |
| HarryBot.fourth   | 458      |
| JackMalt.thrid   | 852      |
| DannyLouse.last   | 350      |
| UbarKim.thrid   | 788      |
| KyatiGott.thrid   | 796      |
| ElsiyaJaous.last   | 555      |
| GarryBewsh.fivth   | 485      |

我想过滤其中包含“.last”文本的A列,然后在结果上,我想从结果中删除“.last”文本。

结果应该是这样的:

| Column A | Column B |
| -------- | -------- |
| DukeGat   | 555      |
| DannyLouse   | 350      |
| ElsiyaJaous   | 555      |

如何使用 Google 表格中的单个公式执行此操作?因为我有这些数据运行 1000 个单元格,所以我尝试使用 ArrayFormula 来组合过滤函数和替换函数。但我无法让它工作。

在 D 列中,我添加了

=FILTER(A:B,SEARCH(".last",A:A))

然后,在 F 列中,为了从过滤结果中删除“.last”,我使用了以下公式。

=ARRAYFORMULA(SUBSTITUTE(D2:D,".last",""))

这是一个两步过程。有没有更好的方法来做到这一点?

我们可以在一个 ArrayFormula 下组合这个 Filter 函数和 Substitute 函数吗? 或者有更好的方法吗?

请帮忙。

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    您可以将公式组合为

    =ARRAYFORMULA(SUBSTITUTE(FILTER(A:B,SEARCH(".last",A:A)),".last",""))
    

    【讨论】:

    • 谢谢。我正是在寻找这个。现在我更好地了解如何在 ArrayFormula 中组合两个函数。
    【解决方案2】:

    我这样做的方法是使用包装在 REGEXREPLACE 中的 QUERY 函数

    ArrayFormula(REGEXREPLACE(QUERY(A1:B20, "SELECT * WHERE A LIKE '%.last'"), ".last", ""))
    

    您的数据在 A1:B20 中的位置。由于您的示例有数字,这将导致 REGEXREPLACE 出错,因此我们需要使用 IFERROR 和没有 REGEXREPLACE 的相同 QUERY 公式覆盖错误。

    IFERROR(
    ArrayFormula(REGEXREPLACE(QUERY(A1:B20, "SELECT * WHERE A LIKE '%.last'"), ".last", "")),
    QUERY(A1:B20, "SELECT * WHERE A LIKE '%.last'")
    )
    

    【讨论】:

      猜你喜欢
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多