GASで表記ゆれを統一!SUBSTITUTE関数の限界を突破。「(株)」も「㈱」も一発変換

GASで表記ゆれを統一!SUBSTITUTE関数の限界を突破し、(株)なども一発変換するイメージ図

顧客リストや名刺データを整理しているとき、こんなストレスを抱えていませんか?

「(株)」「(株)」「㈱」「株式会社」…表記がバラバラで集計できない!

これを解決する一般的な関数がSUBSTITUTE関数です。

しかし、SUBSTITUTE関数を使うと、こんな問題に遭遇します。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"(株)","株式会社"),"(株)","株式会社"),"㈱","株式会社")...

果てしなく続くSUBSTITUTE関数…

このような関数は、以下のデメリットがあります。

  • 数式が長いので管理が難しくなる
  • 後から修正が難しくなる
  • スプレッドシートを重くしてしまう
MASA

もう、そんな数式地獄の関数はやめにしましょう!

この記事では、Google Apps Script(GAS)を使って、この問題をスマートに解決します。

GASを使えば、ボタン1つクリックするだけで、表記ゆれを解決するツールを作ることが出来ます。

↓↓実際の動画↓↓

MASA

コピペするだけでOKなので、ぜひ最後まご覧ください!

目次

【コピペOK】表記ゆれをボタン1つで解決

ここからは実際にGAS(Google Apps Script)を使って、表記ゆれをボタン1つで解決する方法について解説していきます。

MASA

GASの立ち上げ方法は省略してます。
立ち上げ方法から知りたい方は、以下の記事をご参照ください。

コードをコピーして貼り付け

JavaScript
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('便利ツール') // メニュー名
    .addItem('指定列の表記を統一', 'fixNames') // メニュー項目名
    .addToUi();
}

function fixNames() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // ▼▼▼ 設定エリア1:対象の列番号を「1つだけ」指定してください ▼▼▼
  const TARGET_COLUMN = 1; 
  // ▲▲▲ 設定エリア1 ここまで ▲▲▲

  // ▼▼▼ 設定エリア2:ここに行を足すだけでルール追加OK! ▼▼▼
  const replaceList = {
    "(株)": "株式会社 ",
    "(株)": "株式会社 ",
    "㈱": "株式会社 ",
    "(有)": "有限会社 ",
    "㈲": "有限会社 ",
    "KK.": "株式会社 ",
    " ": " " // 全角スペースを半角にする
  };
  // ▲▲▲ 設定エリア2 ここまで ▲▲▲


  const lastRow = sheet.getLastRow();
  if (lastRow === 0) {
    SpreadsheetApp.getUi().alert("データが見つかりません。");
    return;
  }

  const range = sheet.getRange(1, TARGET_COLUMN, lastRow, 1);
  const values = range.getValues();

  const newValues = values.map(row => {
    let cell = row[0];

    if (typeof cell !== 'string' || cell === "") {
      return [cell]; 
    }
    Object.keys(replaceList).forEach(key => {
      cell = cell.split(key).join(replaceList[key]);
    });

    return [cell];
  });

  range.setValues(newValues);
}
JavaScript

自分のシートに合わせてカスタマイズ

どの列の表記ゆれを直したいですか?

コードの以下の部分を見てください。

JavaScript
  const TARGET_COLUMN = 1; 
JavaScript

ここでは「何列目を変換するか」を数字で指定します。

A列、B列などのアルファベットではなく、左から数えて何番目か(1, 2, 3…)を入力してください。

A列を直したい場合

1

B列を直したい場合

2

F列を直したい場合

6

MASA

「D列の表記ゆれを直したい!」という場合は、ここを4に書き換えるだけでOKです!

どの文字をどんな風に直したいですか?

次に、変換ルールを設定します。

ここがこのツールの心臓部です。

以下のリスト部分を見てください。

JavaScript
  const replaceList = {
    "(株)": "株式会社 ",
    "(株)": "株式会社 ",
    "㈱": "株式会社 ",
    "(有)": "有限会社 ",
    "㈲": "有限会社 ",
    "KK.": "株式会社 ",
    " ": " " // 全角スペースを半角にする
  };
JavaScript

このリストは、「左側の文字」を見つけたら、「右側の文字」に書き換えるというルールになっています。

書き換えたい時は以下の手順を踏めばOKです。

  • ""の中に修正したい文字を入れて、:で区切る
  • 次に、修正後の文字を""に入れる
  • リストを増やしたかったら最後に,で区切る

この手順を踏むだけでOKです。

MASA

ご自身の好みに合わせて編集してください!

保存して実行

自分の環境に合わせた変更が出来たら、以下のステップを踏むだけでOKです。

STEP
「Command + S」or「Ctrl+ S」で保存
STEP
「fixNames」を選択
STEP
「実行」ボタンをクリック
STEP
権限の承認を突破
  • 「権限を確認」をクリック
  • アカウントを選択
  • 左下の「詳細」をクリック
  • 一番下の「無題のプロジェクト(安全ではないページ)に移動」をクリック
  • 「許可」をクリック
MASA

この一連の流れが分からない方向けに、こちらの記事で画像付きで解説してます!

スクリプトの実行と権限の突破方法

GASを実行したスプレッドシートに戻ってみてください。

あなたが、表記ゆれを直したいと思ってる列が見事に修正されてるのが、分かると思います

最後に、ブラウザの「更新ボタン」を一度押してみてください。

画面が再読み込みされると、メニューバーに「便利ツール」という項目が追加されます。

MASA

今後は、この「便利ツール」をクリックするだけで、いつでも実行できるようになります!

【もっと便利に】「もっとこうしたい」などありませんか?

今回紹介したコードは、誰でも使えるように、特定の1列を、リスト通りに変換するというシンプルな機能に絞っています。

しかし実際の現場では、こんな物足りなさが出てくるかもしれません。

文字の位置も移動させたい

今のコードは、文字を置き換えることはできますが、文字の位置は移動できません。

例えば「(株)タナカ」を変換すると「株式会社タナカ」になりますが、正しくは「タナカ株式会社(後株)」ということもあるかもしれません。

シチュエーションに合わせて、文字を移動させたりするかの自動判定には、もっと高度なプログラムが必要です。

あえて直してはいけない例外対応

基本的には全部の表記揺れを一括で直したいけど、1つだけ特例で、変える必要がない箇所がある…

このような、「この列の中のこれだけは除外したい」といった要望もあるかもしれません。

そんな条件付きの処理は、一括変換ツールでは対応できません。

他の列の表記ゆれも同時に直したい

「A列の社名は表記統一、D列の電話番号はハイフン削除、F列の金額は半角化…」

実務では、列ごとにやりたい処理が違うはずです。

コードを書き換える手間なく、ボタン一発ですべての列をで完璧に整形するには、専用のカスタマイズが必要です。


もっと高機能なツールが欲しいならお任せください!

どうせやるなら、ウチの会社のルールに完璧に合わせたい!

社員が使うから、絶対にミスが起きない安全なツールにしたい

そうお考えの方は、ぜひ私に一度ご相談ください。

MASA

あなたの業務フローにカチッ!とハマる「オーダーメイドの自動化ツール」を作成します!

文字の位置も移動させる柔軟な仕組み

ただ表記方法を直すだけでなく、文字の場所も移動させる仕組みを構築します。

変えてはいけないを守る厳格な仕組み

一律変換ではなく、状況に合わせた柔軟な処理を組み込みます。

複数の列を一括整形

ボタン1つでシート全体を一気に整形する処理を組み込みます。

まずは「今の作業のどこが面倒か」をお問い合わせから教えてください。

MASA

あなたに最適な自動化プランをご提案します!

まとめ

SUBSTITUTE関数を使った、管理が難しい重たくなるシートとはもうおさらばです。

今回紹介したGASなら、コード内のリストに追記するだけで、シートを重くすることなく、誰でも簡単に表記ゆれを統一できます。

  • SUBSTITUTE関数は管理が難しい
  • SUBSTITUTE関数はシートを重くするリスクがある
  • GASを使ったらボタン1つで表記ゆれを統一
  • シートが重くなる心配もなし

今回紹介したコードを実際に試してみると、一気に表記ゆれが統一されて、「気持ちいい!」ってなります。

もし、

自分の会社ルールに合わせたコードに修正してほしい

と思ったらいつでもご相談ください。

あなたの業務に完璧にフィットする専用ツールを作成します。

MASA

面倒な作業はツールに任せて、より集中すべきタスクに集中する仕組みを一緒に作りましょう!

  • URLをコピーしました!

MASAのアバター MASA MASA|GAS開発者

GAS開発者のMASAです。
スプレッドシート業務の自動化や効率化の仕組みづくりを提供しています。
ブログではの自動化や効率化のTipsについて発信しています。

目次