いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)空白セルだけを一括置換する操作

 Googleスプレッドシートで、空白セルだけを一括して置き換え、指定した値を入力する方法についてです。

  • 対象範囲を選択してメニューから「編集」→「検索と置換」と進み、ダイアログで値を適宜設定することで空白セルの一括置換ができます。
  • ただし、枠線(罫線)を引いたりフォントサイズを変更するなどの操作を行ったセルでないと置換がうまく機能しません
  • また、正確には空白セル以外に「'」だけのセルも置き換えの対象となります(正確には「'」の後に置換後の文字列が続くという妙な結果になります)。「=""」は置き換えられません。

手順

f:id:accs2014:20201019035421p:plain:right:w550

 このような、ところどころ空白になっている表があります。
 そこで空白セルをすべて「0」に置き換えるものとします。

 

f:id:accs2014:20201019035425p:plain:right:w550

 まずは対象となる範囲を選択します。

 

f:id:accs2014:20201019035429p:plain:right:w500

 そしてメニューから「編集」→「検索と置換」と進みます。

 
 するとダイアログが現れますがここがキモです。
 まず「検索」欄に「^$」と入力します。次に「置換後の文字列」に「0」と入力します。
 そして「正規表現を使用した検索」にチェックを入れます(自動的に「大文字と小文字の区別」にもチェックが入ります)。
 最後に「すべて置換」をクリックします(先に「完了」をクリックすると何も起きませんので注意)。

f:id:accs2014:20201019035434p:plain:w780

 

f:id:accs2014:20201019035439p:plain:right:w500

 すると置換が終わったことを示すメッセージが現れます。
 あとは「完了」をクリックしてダイアログを閉じます。

 ここで補足ですが、正規表現では「^」は文字列の先頭を、「$」は文字列の末尾を表します。これらが隣接しているものを「0」に置き換えることとしたため、結果的に空白セルだけが置き換えられた、というわけです。

f:id:accs2014:20201019035443p:plain:right:w550

 置き換え後の結果はこうなります。
 空白セルだけが「0」に置き換えられていることがわかります。

 注意点ですが、どういうわけか全く何の操作も行っていない空白セルにこの操作を行っても、置換ができません。上記のように枠線(罫線)を設定したり、フォントサイズの変更等の操作を行った後のセルであればうまくいきます。こうした設定が不要な場合は、一旦枠線をひいて置換を行ってから枠線を消す、というのが一つの方法です。
 また、正確には空白セル以外にアポストロフィ(')だけのセルも置換の対象となります(正確にはアポストロフィが消えず、その後に置き換え後文字列が加えられます)。しかし「=""」は置き換えられません。