スプレッドシートを利用していると、不自然な空白が出てしまうことがあります。手作業で1つずつ行や列を削除しながら詰めていく方法もありますが、空白の量が多いと膨大な作業量になり手間がかかります。
空白を一括で詰めたいときは、関数を使うのが良いでしょう。この記事では、スプレッドシートで空白が出た際に間を詰める便利な関数を紹介するので活用していきましょう。
スプレッドシートで空白が出る場合とは?
重複データをIF関数で調べた場合、重複部分が空白として残ります。例えば同じ氏名を複数回入力してしまった場合、重複チェックをすることで空白が出る場合があります。
今回使用しているIF関数「=if(isna(match(B4,B$3:B3,0)),B4,””)」は、「指定範囲内に重複があったら空白にする」という意味です。
ISNA関数はセルの内容がエラーか判断する関数で、MATCH関数は指定された項目を検索し、その範囲内における位置を返す関数です。これにより重複がなければB4の内容がそのまま入力されますが、空白になった場合は重複があるとわかります。
関連記事:【2022年最新!】ExcelやGoogleスプレッドシートのガントチャートテンプレートを紹介!
スプレッドシートで空白を詰める方法
ここからは、スプレッドシートで空白を詰める際に使える関数を紹介します。
QUERY関数の利用
QUERY関数は、Googleスプレッドシートで使える関数です。指定の範囲において、キーワードや条件に合致するデータを抽出できます。QUERY関数では、「QUERY(データ, クエリ, [見出し])」と記述します。
【1】QUERY関数用のチェック列を用意します。
【2】D3セルにQUERY関数を入力します。「=QUERY(C3:C13,”where C !=””)」で「C3からC13列における空白ではないセルを抽出する」という意味です。
【3】実行すると、C列の空白を詰めて表示されます。
関連記事:ExcelではQUERY関数は使えない?利用時の注意点や代用できる関数は?
FILTER関数の利用
FILTER関数は選択範囲から指定した条件のデータを抽出する関数であり、QUERY関数と同じ用途で利用できます。FILTER関数では、「=FILTER(配列,含む,[空の場合])」と記述します。
【1】FILTER関数用のチェック列を用意します。
【2】E3セルにFILTER関数を入力します。「=FILTER(C3:C13,C3:C13<>””)」で「C3からC13列における空白ではないセルを抽出する」という意味です。
【3】実行すると、C列の空白を詰めて表示されます。関数の記述形式は異なりますが、QUERY関数と同じ結果になります。
SUBSTITUTE関数
SUBSTITUTE関数は、検索対象のテキスト内にある文字を別の文字に置換する関数です。「=SUBSTITUTE(文字列,検索文字列,置換文字列,対象)」と記述します。
空白セルを詰めるのではなく、ひとつのセル内に全角スペースや半角スペースなどの空白ができている場合に便利です。
全角スペースの場合
【1】全角スペースの場合、「=SUBSTITUTE(B3,” ”,””)」と記述します。「B3セルに” ”で示されている全角スペースをなくす」という意味です。
【2】同じ関数をコピーしていくと、全てのセルの全角スペースを詰められます。
半角スペースの場合
【1】半角スペースの場合、「=SUBSTITUTE(B3,” “,””)」と記述します。「B3セルに” “で示されている半角スペースをなくす」という意味です。
【2】同じ関数をコピーしていくと、全てのセルの半角スペースを詰められます。
全角・半角が混ざっている場合
【1】全角スペースと半角スペースが混ざっている場合、まずどちらかに統一させます。今回は全角スペースを半角スペースに統一するため、「=SUBSTITUTE(B3,” ”,” “)」と記述しています。「B3セルに” ”で示されている全角スペースを” “の半角スペースに置換する」という意味です。
【2】「全角→半角」のC列で、全ての空白が半角に置換されています。
【3】半角スペースを詰めるための列を用意し、「=SUBSTITUTE(C3,” “,””)」と記述します。「C3セルに” “で示されている半角スペースをなくす」という意味です。
【4】同じ関数をコピーしていくと、全てのセルの半角スペースを詰められます。
よくある質問
最後に、スプレッドシートの空白を詰める作業に関して「よくある質問」を紹介します。
スプレッドシートで空白を詰めるのではなく空白を入れる場合も可能ですか?
スプレッドシートで空白を入れる場合、REPLACE関数を使います。REPLACE関数は、文字列に含まれる指定された文字数にある文字を、別の文字に置き換える関数です。「=REPLACE(文字列, 開始位置, 文字数, 置換文字列)」で記述します。
【1】C3列にREPLACE関数を入力します。「=REPLACE(B3, 3, 0, ” “)」で「B3の3文字目から0文字目を” “(半角スペース)に置き換える」という意味になります。
【2】C列全ての3文字目に半角スペースが挿入されました。
空白行を全て他の値に置換することは可能ですか?
空白行を全て他の値に置換することも可能です。
【1】対象となる範囲を選択します。
【2】「編集」タブから「検索と置換」をクリックします。「検索」の部分には「^$」を入力し、空白部分を検索します。「置換後の文字列」は置換後に入力したい値を入力しますが、今回は「0」にしています。
【3】「すべて置換」をクリックすると、空白セルに「0」が入力されます。
空白行や列を詰める方法を知りたいです。
空白行や列を詰めるときは、本記事で紹介した関数の他にフィルタ機能を使うこともできます。
【1】空白を削除したい範囲を選択し、「フィルタを作成」をクリックします。
【2】フィルタマーククリックし、「条件でフィルタ」を「空白ではない」に設定します。
【3】空白のセルが詰められ、データのあるセルだけが残ります。
まとめ
空白セルや半角スペース、全角スペースを全て手作業で削除していくのは非常に時間がかかります。関数やGoogleスプレッドシートの機能を活用すればすぐに空白を詰められるので、活用していきましょう。
スプレッドシート空白に関する重要用語
用語 | 意味 |
QUERY関数 | 特定の範囲において、指定のキーワードに合致するデータをピックアップする関数です。効果はFILTER関数と同じですが、Googleスプレッドシートのみで使えます。 |
FILTER関数 | 特定の範囲において、指定のキーワードに合致するデータをピックアップする関数です。効果はQUERY関数と同じですが、GoogleスプレッドシートだけでなくExcelでも使えます。 |
SUBSTITUTE関数 | 検索対象のテキスト内にある文字を別の文字に置換する関数です。ひとつのセル内に全角スペースや半角スペースなどの空白ができている場合に便利です。 |
REPLACE関数 | 文字列に含まれる指定された文字数にある文字を、別の文字に置き換える関数です。空白の挿入などに役立ちます。 |
フィルタ機能 | 指定行における特定のキーワードに合致するデータだけを抽出する機能です。「編集」→「並び替えとフィルター」→「フィルター」から使えます。 |
検索と置換 | 特定の文字列に合致する部分だけ、指定の文字列に置き換える機能です。「編集」→「検索と置換」から使えます。また、半角スペースや全角スペースの削除にも使えます。 |