Googleスプレッドシートで半角スペースを全角に統一|バラバラなスペースを一括修正

Googleスプレッドシートで名前の一覧を整理していると、苗字と名前の間のスペースに半角スペースと全角スペースが混在してしまうことはありませんか?

データが統一されていないと、検索や並び替えがうまくいかず、意図しない並びになってしまうことも…。

ですが、一つずつ手作業で修正するのは大変ですよね。

そこで、本記事では、半角スペースを全角スペースに一括変換する3つの方法をご紹介します。

目次

スペースを半角→全角に一括変換する3つの方法

方法適用場面メリットデメリット
関数を使用
SUBSTITUTE関数
元データを残しつつ、別の列で変換したい手軽に変換できる元データを修正するにはコピー&ペーストが必要
検索と置換
Ctrl+H)
元データを直接修正したい手軽に変換できる手動操作が必要なため、繰り返し実行の場合はやや面倒
Google Apps Script(GAS)元データを一括で処理し、今後も簡単に実行したいワンクリックで処理可能、自動化できるスクリプトの設定が必要

各方法の詳細については以下でご説明します。

方法①:SUBSTITUTE関数

この方法が向いているケース
  • 元データは残しておきたい
  • 関数で簡単に処理したい

手順(A列のデータをB列で変換する場合)

STEP
B列のセルに関数を入力

B2セルに以下の関数を入力します。(1行目はヘッダーのため)

=SUBSTITUTE(A2, " ", " ")
=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換の回数](省略可))
数式の説明

SUBSTITUTE 関数は、指定したテキスト内の特定の文字列を別の文字列に置き換える関数です。

=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換の回数](省略可))
  • 文字列:対象となる文字列(セル参照も可)
  • 検索文字列:置き換えたい文字
  • 置換文字列:新しく置き換える文字
  • [置換の回数](省略可):置換を適用する回数(省略するとすべて置換)

今回の数式の場合

=SUBSTITUTE(A2, " ", " ")
  • A2セルのテキストを対象にします。
  • 半角スペース (" ") を検索します。
  • A2セルの中のすべての半角スペースを全角スペースに置き換えます。
  • 半角スペースが複数含まれていても、一括で全角スペースに置換されます。
    • 例えば"A B C" という文字列がある場合、数式を適用すると "A B C" になります。
STEP
オートフィルで下の行にも適用

オートフィルで下にドラッグして他の行にも数式を適用します。

応用:ARRAYFORMULA関数を使って複数行を一括変換

ARRAYFORMULA関数を使った方法は、以下の場合に便利です。

  • 新しいデータが追加されても自動で変換したい
  • オートフィルを使わずに一括で適用したい

SUBSTITUTE関数は単独のセルに対して適用されますが、ARRAYFORMULA関数を組み合わせることで、複数のセルに対して一括で適用できます。

B列全体を自動変換するには、B2セルに以下の式を入力:

=ARRAYFORMULA(IF(A2:A<>",", SUBSTITUTE(A2:A, " ", " ")))
数式の説明
ARRAYFORMULA()
  • 配列(範囲)を一括処理するための関数です。
  • 通常の関数は1セルずつ適用されますが、ARRAYFORMULA を使うことで複数のセルに適用でます。
A2:A<>","
  • A列(A2以降)のセルが "," でない場合に SUBSTITUTE を適用します。
  • これはA列が空白でない場合に処理するための条件分岐となります。
SUBSTITUTE(A2:A, " ", " ")

A2以降のすべてのセルで 半角スペース (" ") を全角スペース (" ") に置換します。

これにより、A列のすべてのデータが自動的に変換され、B列に表示されます。

方法②:検索と置換(Ctrl+H

この方法が向いているケース
  • 元データを直接修正したい
  • GASを使わずに一括変換したい

手順

STEP
検索と置換を開く(Ctrl+H

Ctrl+H を押して「検索と置換」ダイアログを開きます。

(上部メニューの「編集」ー「検索と置換」からでも行えます)

STEP
検索ボックスに半角スペースを入力

検索ボックスに 半角スペース を入力します。

STEP
置換後の値に全角スペース を入力

「置換後の文字列」に全角スペース を入力します。

STEP
範囲を選択

検索と置換を適用する範囲を選択します。

  • すべてのシート:ファイル内の全シート
  • このシート:現在開いているシート内のみ
  • 特定の範囲:選択したセルのみに適用
STEP
「すべて置換」をクリック

「すべて置換」をクリックすると、選択した範囲の半角スペースが全角スペースに変換されます。

方法③:GAS

この方法が向いているケース
  • 毎回手作業するのが面倒で、自動化したい
  • 定期的に自動で処理したい

「検索と置換」でも全角スペースに一括変換できますが、繰り返し操作する場合にはやや面倒です。

その場合はGoogle Apps Script (GAS) を使用することで、繰り返しの変換もラクにできます。

今回のスクリプト例では、A列を対象に一括で半角スペース→全角スペースに変換します。

GASの実行手順

STEP
GASエディタを開く

Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。

STEP
スクリプトの作成

function myFunction(){

}

が最初から入っているため、消去して以下のスクリプトを貼り付けます。

function convertHalfWidthSpaceToFullWidth() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange("A:A"); // A列全体を取得
  var values = range.getValues();
  
  for (var i = 0; i < values.length; i++) {
    if (values[i][0]) { // 空白でない場合のみ処理
      values[i][0] = values[i][0].replace(/ /g, " "); // 半角スペースを全角スペースに置換
    }
  }
  
  range.setValues(values);
}
スクリプトの説明
アクティブなシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  • SpreadsheetApp.getActiveSpreadsheet()で現在開いているスプレッドシートを取得します。
  • .getActiveSheet()で現在開いているシートを取得します。
  • これによりスクリプトがどのシートを操作するのかを決定します。
A列全体のデータを取得
  var range = sheet.getRange("A:A"); // A列全体を取得
  • sheet.getRange("A:A")でA列全体を選択します。
  • "A:A"A列のすべての行を指します。
データを2次元配列として取得
  var values = range.getValues();
  • .getValues()でA列のデータを2次元配列として取得します。
    • 例: values = [["山田 太郎"], ["佐藤 一郎"], ["鈴木 三郎"], [""]]
A列すべての行を処理
  for (var i = 0; i < values.length; i++) {
  • for ループでA列のすべての行を処理します。
  • values.length はA列の行数(データが何行あるか)
空白セルを除外
    if (values[i][0]) { // 空白でない場合のみ処理
  • values[i][0] が 空白でない場合に処理を実行します。
  • 空白セルを処理しない ことで、不要な変更を防ぎます。
各セルの半角スペースを全角スペースに置換
      values[i][0] = values[i][0].replace(/ /g, " "); // 半角スペースを全角スペースに置換
  • .replace(/ /g, " ")
    • すべての半角スペース を全角スペース   に置換します。
    • / /g は 「すべての半角スペース」を対象とする正規表現です。
    • g は「グローバル」オプションで、すべての一致箇所を置換します。
変換後のデータをA列に書き戻す
  range.setValues(values);
  • 変換後のデータをA列に書き戻します。
  • setValues() で一括書き込みすることで、処理を高速化します。
STEP
スクリプトを保存

スクリプトを書いたら、好きな名前を付けて保存します。

(例:「半角→全角スペース_変換)

STEP
スクリプトを実行

スクリプトの「実行」をクリックします。

STEP
完了

A列のデータがすべて全角スペースに統一されます。

対象の列を変更する場合

対象の列をA列以外に変更する場合は、以下コードA:Aの部分を書きかえます。

変更する箇所

  var range = sheet.getRange("A:A"); // A列全体を取得

例えば、B列全体 に変更したい場合は、以下のように修正します。

  var range = sheet.getRange("B:B"); // B列全体を取得

GASをカンタンに繰り返し実行する方法

GASを毎回スクリプトエディタから実行するのは手間ですが、マクロインポート図形ボタンを使うと簡単に繰り返し処理できます。

  • マクロインポートを使うと、GASをスプレッドシートのメニューから実行可能に
  • 図形ボタンを作成して、クリックするだけでGASを実行可能に

詳しい設定方法については、以下の記事をご参照ください。

まとめ

  • 元データを残したままなら → SUBSTITUTE関数
  • 元データを修正するなら → 検索と置換
  • 元データを繰り返し修正するなら → GASで自動化

作業内容に合った方法を選ぶことで、業務を効率化できます。

また、今回の方法を応用することでスペース以外の置換えにも使えます。

ぜひご活用ください。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次