【问题标题】:Why does GSheet's "find" not find my blank cells even though ISBLANK() finds them?为什么即使 ISBLANK() 找到它们,GSheet 的“查找”也找不到我的空白单元格?
【发布时间】:2021-11-25 15:16:44
【问题描述】:

我有以下问题:当我在 GSheet 的“查找”中键入“^\s*$”时,即使 ISBLANK() 找到它们,它也找不到我的空白单元格。我需要找到空白单元格并将其替换为“NA”。非常感谢您的帮助!

这是我的表格的摘录:https://docs.google.com/spreadsheets/d/12EajCPW68UXc8kgeqfsEoxgTBuLbccdAnnj6tZOSntM/edit#gid=0

【问题讨论】:

  • 您是否有任何特定目的要使用regex
  • 我没有使用正则表达式。我正在使用查找(和替换)框。

标签: google-sheets spreadsheet find-replace


【解决方案1】:

像这样尝试:

=REGEXMATCH(C5, "^$")

^$

【讨论】:

  • 谢谢!但这与我的 ISBLANK() 函数的作用相同。我想做的是使用查找和替换框将我所有的空白单元格替换为 NA。 (而且我只使用了 ISBLANK() 函数来表明它找到了空单元格,而 find 和 replace 不知何故没有。)
  • 或者,如果您想建议我在查找和替换框中键入“^$”:不幸的是,这似乎也不起作用!
  • 我可以解决这个问题,使用 IF 和 ISBLANK 创建新列,但如果知道是否有办法让查找和替换工作,那就太好了。它在相同的情况下在其他工作表中起作用,但有时却不起作用,这真的很奇怪。
【解决方案2】:

您可以试试这个 Apps 脚本代码。这应该可以帮助您入门。

function replaceBlank() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var range = sheet.getRange(2,2, sheet.getLastRow(), 2);
  var rangeval = range.getValues();

  for (var i = 0; i < sheet.getLastRow()-1; i++) {
    Logger.log(rangeval[i]);
    if (rangeval[i].concat() == ",") {
    rangeval[i].splice(0,2,"NA","NA");
    sheet.getRange(i+2,2,1,2).setValues([rangeval[i]]);
    } else {
    }
  }
}

此代码的工作方式是它将遍历列 B 和 C,一旦检测到当前行为空白,它将设置值 NA,如 rangeval[i].splice(0,2,"NA","NA"); 中定义的那样

截图:

【讨论】:

  • 非常感谢 Diego :) 我会研究 Apps 脚本,看起来很有趣!知道为什么正常的查找和替换框不适用于我的电子表格吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2020-02-07
相关资源
最近更新 更多