スプレッドシートで空白セルだけに「0」を一括置換する方法

スプレッドシートで空白セルだけに「0」を一括置換する方法 スプシの使い方

Google スプレッドシートで、データ入力がされていない空欄のセルに、まとめて「0」を入力したいケースがあります。手作業で一つずつ入力するのは非効率ですが、スプレッドシートにはこの作業を効率化する方法が用意されています。

この記事では、完全に空白のセルだけを対象に「0」を一括で入力するための、主な2つの方法を詳しく解説します。

  • 方法1: 「検索と置換」機能を使う(手軽な方法) -特別な準備なしに、すぐに実行できる基本的な方法です。
  • 方法2: Google Apps Script (GAS) を使う(自動化・定型化向け) – 定期的に同じ処理を行う場合や、より複雑な処理と組み合わせたい場合に便利な方法です。

それぞれの具体的な手順と注意点を見ていきましょう。


方法1: 「検索と置換」機能を使う(手軽な方法)

特別な準備が不要で、すぐに試せる最も手軽な方法です。正規表現を利用して、完全に空白のセルのみを対象にします。

手順

  1. 【重要】操作対象範囲の選択
    まず、「0」を入力したいセルが含まれる範囲をマウスでドラッグして選択します。特定の列、表全体など、操作したい範囲を明確に指定してください。
    ここで範囲を選択することで、意図しないセルへの変更を防げます。シート全体を対象にする場合は特に注意が必要です。
  2. 「検索と置換」ダイアログを開く
    メニューバーから「編集」「検索と置換」を選択します。
    (ショートカットキー: Windows/ChromeOS: `Ctrl + H`, Mac: `⌘ + Shift + H`)
  3. 検索条件と置換後の文字列を入力
    開いたダイアログに以下のように入力します。

    • 検索: ^$ (←「完全に空のセル」を意味する正規表現)
    • 置換後の文字列: 0 (←入力したい文字)
  4. 検索オプションを設定
    ダイアログ下部のオプションを以下のように設定します。

    • 検索対象: 「特定の範囲」(手順1で選択した場合)または「このシート」などを選択。
    • 正規表現を使用した検索: 必ずチェックを入れます。
    • 大文字と小文字の区別: チェック不要。
    • 完全に一致するセルを検索: チェック不要。
    • 数式内も検索: チェックを外します。
  5. 置換を実行
    設定内容を確認し、「すべて置換」ボタンをクリックします。置換されたセルの数が表示されます。
  6. 結果を確認
    「完了」ボタンでダイアログを閉じ、意図通りに空白セルに「0」が入力され、他のセルに変更がないか確認します。

方法2: Google Apps Script (GAS) を使う(自動化・定型化向け)

同じ操作を繰り返し行う場合や、他の自動処理と組み合わせたい場合には、Google Apps Script (GAS) を使うと便利です。以下のコードは、現在選択されている範囲の空白セルに「0」を入力します。

GASコード

/**
 * @OnlyCurrentDoc // スクリプトが現在のドキュメントにのみアクセスすることを宣言
 */

/**
 * ユーザーが現在選択している範囲内の「完全に空白」のセルに「0」を入力します。
 * 数式で""になっているセルやスペースのみのセルは対象外です。
 */
function fillBlankCellsWithZeroInSelection() {
  // アクティブなスプレッドシートと選択範囲を取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const range = ss.getActiveRange(); // 現在選択されている範囲を取得

  // 範囲が選択されているかチェック
  if (!range) {
    // 選択されていない場合はメッセージを表示して終了
    SpreadsheetApp.getUi().alert('処理する範囲が選択されていません。\n範囲を選択してから再度実行してください。');
    return;
  }

  // 選択範囲内の各セルをチェック
  const numRows = range.getNumRows();
  const numCols = range.getNumColumns();
  let replacedCount = 0; // 置き換えたセルの数をカウント

  // 1行ずつ、1列ずつセルを確認 (セルへのアクセスが多いので大量データでは時間がかかる可能性あり)
  for (let i = 1; i <= numRows; i++) {
    for (let j = 1; j <= numCols; j++) {
      const cell = range.getCell(i, j); // 範囲内のi行j列目のセルを取得

      // isBlank() メソッドでセルが完全に空白か判定
      if (cell.isBlank()) {
        cell.setValue(0); // 空白であれば「0」を設定
        replacedCount++;
      }
    }
  }

  // 処理完了メッセージを表示
  if (replacedCount > 0) {
    SpreadsheetApp.getUi().alert(`選択範囲内の ${replacedCount} 個の空白セルに「0」を入力しました。`);
  } else {
    SpreadsheetApp.getUi().alert('選択範囲内に空白セルは見つかりませんでした。');
  }
}

/**
 * スプレッドシートを開いたときにカスタムメニューを追加する関数。
 * これにより、メニューから簡単にスクリプトを実行できるようになります。
 */
function onOpen() {
  SpreadsheetApp.getUi()
      .createMenu('カスタム処理') // メニュー名
      .addItem('選択範囲の空白セルに0入力', 'fillBlankCellsWithZeroInSelection') // メニュー項目名と実行する関数名
      .addToUi(); // UIに追加
}

コードの解説

  • SpreadsheetApp.getActiveRange(): ユーザーが現在選択しているセル範囲を取得します。
  • range.getNumRows() / range.getNumColumns(): 選択範囲の行数と列数を取得します。
  • for ループ: 選択範囲内のすべてのセルを順番に処理します。
  • range.getCell(i, j): ループ中の現在のセルを取得します。
  • cell.isBlank(): セルが完全に空白(値も数式もない)かどうかを判定します。スペースのみのセルは空白とはみなされません。
  • cell.setValue(0): セルに値「0」を設定します。
  • SpreadsheetApp.getUi().alert(...): 処理結果をダイアログボックスでユーザーに通知します。
  • onOpen(): スプレッドシートを開いたときに「カスタム処理」メニューを自動的に作成し、そこから `fillBlankCellsWithZeroInSelection` 関数を実行できるようにします。

使い方

  1. スクリプトエディタを開く: スプレッドシートのメニュー「ツール」→「スクリプト エディタ」を選択。
  2. コードを貼り付け: 上記のGASコード全体をコピーし、エディタに貼り付け。
  3. 保存: 保存アイコンをクリックし、プロジェクト名(例: 「空白セル処理」)を入力して保存。
  4. ページ再読み込み: スプレッドシートのタブ(またはウィンドウ)を再読み込み。
  5. 承認(初回のみ):
    • メニューに「カスタム処理」が表示されるので、その中の「選択範囲の空白セルに0入力」をクリック。
    • 「承認が必要です」と表示されたら「続行」。
    • アカウントを選択し、「詳細」→「(プロジェクト名)(安全でないページ)に移動」→「許可」をクリック。
  6. 実行:
    • スプレッドシート上で「0」を入力したい範囲を選択。
    • メニュー「カスタム処理」→「選択範囲の空白セルに0入力」をクリック。
    • 処理が実行され、完了メッセージが表示されます。

どちらの方法を選ぶか?

  • 「検索と置換」がおすすめな場合:
    • 一度だけ、またはたまにしかこの処理を行わない。
    • スクリプトの設定や承認に手間をかけたくない。
    • 手軽に素早く実行したい。
  • 「Google Apps Script (GAS)」がおすすめな場合:
    • この処理を定期的、または頻繁に行う。
    • ボタンクリック一つで処理を完了させたい(メニューから実行)。
    • 将来的に、空白セルへの「0」入力以外の処理も自動化したい。
    • プログラミング(JavaScript)に抵抗がない、または学んでみたい。

共通の注意点

  • 対象は「完全に空のセル」のみ: どちらの方法でも、数式の結果が空白("")になっているセルや、スペースだけが入力されているセルは処理対象外です。完全に何も入力されていないセルのみが対象となります。
  • 実行前の範囲選択: 意図しない変更を防ぐため、操作対象の範囲を明確に選択してから実行することを強く推奨します。
  • 元に戻す: 操作を誤った場合は、すぐに `Ctrl + Z` (Mac: `⌘ + Z`) で元に戻せます。
  • バックアップ: 大量のデータを操作する場合や、重要なファイルを扱う場合は、作業前にシートやファイルのコピーを作成しておく(「ファイル」>「コピーを作成」)と安心です。

まとめ

スプレッドシートの空白セルに「0」を一括入力するには、「検索と置換」機能を使う手軽な方法と、Google Apps Script (GAS) を使う自動化に適した方法があります。一度きりの作業なら「検索と置換」、繰り返し行うならGASコードの導入を検討すると良いでしょう。どちらの方法も、対象範囲をしっかり確認し、注意点を守って利用することで、データ整形作業の効率を大幅に向上させることができます。

コメント