Excelの前後空白・全角スペースをまとめて整える ― Office Scriptsで表記ゆれを掃除する

Microsoft 365・Azureカテゴリを表すパンダのイラスト Microsoft 365・Azure

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Microsoft LearnのOffice Scripts Range APIを確認し、Excelテーブル内の文字列をまとめて整えるTIPSとして整理しています。

検証ステータス:📘 公式仕様確認済み・Office Scriptsサンプル実装済み・対象Microsoft 365環境での実機未確認

Excelの前後空白・全角スペースをまとめて整える ― Office Scriptsで表記ゆれを掃除する

人から集めたExcelには、「東京」「 東京」「東京 」「東京 本社」のような空白ゆれが混ざりがちです。見た目は同じでも、集計や突き合わせでは別文字列になることがあります。

Office Scriptsなら、テーブル内の文字列だけを走査して整える処理を短く書けます。

文字列だけを整える

// セルの値を文字列として取り出します。
const before = String(values[row][col]);

// 1) 全角スペースを半角へ
// 2) 連続する空白を1つへ
// 3) 先頭・末尾の空白を削除
const after = before
  .replace(/\u3000/g, " ")
  .replace(/\s+/g, " ")
  .trim();

// 値が変わるセルだけを書き戻します。
// 変更のないセルまで書き換えないためです。
if (before !== after) {
  range.getCell(row, col).setValue(after);
}

この3段階で、全角スペースを半角へ寄せ、連続空白を1つにし、前後空白を削除します。

数式セルは触らない

表全体を setValues() で書き戻すと、数式セルまで値に置き換えてしまう危険があります。そのため完全版では getFormulas() も確認し、数式が入っているセルはスキップします。

ここは「短いコード」より「壊さないコード」を優先した部分です。

何に効く?

  • 部署名・氏名の表記ゆれ

  • CSV取り込み後の空白掃除

  • VLOOKUP / XLOOKUP前の前処理

  • 重複チェック前の正規化

  • Power Automateへ渡す前の整形

flowchart LR
    A[Excel Table] --> B[文字列セルだけ取得]
    B --> C[全角/連続/前後空白を正規化]
    C --> D[変更セルだけ書き戻す]

GitHubサンプル

公式情報・一次情報

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました