Googleスプレッドシートでは空白セルだけを一括置換できない

空白セルだけを一括置換

Googleスプレッドシートで空白セルだけを一括置換して何かの文字で埋めたいことがある。

例えば下図のような空白セルに「休み」と入力するなどの場合です。

Googleスプレッドシートでは空白セルだけを一括置換できない

ExcelならCtrl + Gからのセル選択で空白セルを選択して「休み」と入力してCtrl + Enterを押せば空白セルを埋めることができるが、Googleスプレッドシートには空白セルの選択機能がない。

閲覧者の中には空白セルを選択して「^$」を正規表現で「休み」で置換すれば空白セルを埋められるのでは、と考えている人がいると思うが、正規表現で空白セルを埋める方法は2021年から使用不可になっている。

Google Apps Scriptで空白セルを埋める

前述の通り、Googleスプレッドシートでは通常の機能だけで空白セルだけを一括置換できません。

Googleスプレッドシートで空白セルを埋めるにはGoogle Apps Scriptを使用します。

まずメニューバーの拡張機能からApps Scriptを選択してスクリプトエディタを開く。

スクリプトエディタに以下のコードを貼り付けて保存する。

function onOpen() {
  const ui = SpreadsheetApp.getUi()
  const menu = ui.createMenu('GAS')
  menu.addItem('選択範囲の空白セルを埋める', 'fillEmptyCells')
  menu.addToUi()
}

function fillEmptyCells() {
  const ss = SpreadsheetApp.getActiveSheet()
  const range = ss.getActiveRange()
  const values = range.getValues()
  const ui = SpreadsheetApp.getUi()
  const ret = ui.prompt('選択範囲の空白セルに入れるテキストを入力')
  values.forEach((v, i) => {
    v.forEach((w, j) => {
      if (w === '') {
        values[i][j] = ret.getResponseText()
      }
    });
  });
  range.setValues(values)
}

保存したらシートに戻ってブラウザを更新するとメニューバーにGASが追加されて、その中に「選択範囲の空白セルを埋める」があります。

メニューバーにGASが追加されて、その中に「選択範囲の空白セルを埋める」があります。

空白セルを選択した状態で実行すれば入力ダイアログが表示されて空白セルに入れる文字が入力可能になります。

Google Apps Script「選択範囲の空白セルを埋める」