Googleスプレッドシートで全角数字を半角に一括変換|GASで解決

Googleスプレッドシートで全角数字と半角数字が混ざっていると、正しく計算が行われずエラーになることがあります。

特に大量のデータを扱っていたり、一つのファイルを複数人で共有して作業していると、そのようなことが起きやすくなります。

ですが、入力済みの全角数字を一つひとつ手作業で修正するのは手間も時間もかかってしまいます。

そこで本記事では、Google Apps Script(GAS)を使って、選択した範囲の全角数字を半角数字にまとめて変換する方法をご紹介します。

目次

完成イメージ

全角・半角数字が混じった状態
全角数字が混じっているため、金額の計算を正しくできない。
GASで半角数字に統一
半角数字に統一され、正しく計算できるようになる。

選択した範囲のセルをGASで半角数字に一括変換

手順

STEP
半角数字に変換したいセルを範囲選択

全角数字が混じっている範囲を選択します。

今回のGASでは、選択した範囲を対象に一括で半角数字にします。

STEP
GASエディタを開く

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

STEP
スクリプトの作成

function myFunction(){

}

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

function toHalfWidth() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = sheet.getActiveRange();
  const values = range.getValues();

  const convertedValues = values.map(row => 
    row.map(cell => {
      if (typeof cell === 'string') {
        return cell.replace(/[0-9]/g, s => String.fromCharCode(s.charCodeAt(0) - 0xFEE0));
      }
      return cell;
    })
  );

  range.setValues(convertedValues);
}
スクリプトの説明
アクティブなシートを取得
const sheet = SpreadsheetApp.getActiveSheet();
  • 現在開いているスプレッドシートの「アクティブ(操作中)」なシートを取得します。
選択した範囲を取得
const range = sheet.getActiveRange();
  • マウスなどで選択したセル範囲を取得します。
セルの値を取得
const values = range.getValues();
  • 選択したセル範囲のデータを2次元配列として取得します。
全角数字を半角数字に変換
const convertedValues = values.map(row => 
  row.map(cell => {
    if (typeof cell === 'string') {
      return cell.replace(/[0-9]/g, s => String.fromCharCode(s.charCodeAt(0) - 0xFEE0));
    }
    return cell;
  })
);

range.setValues(convertedValues);
  • .map() メソッドを使い、各セルの値を処理します。
  • typeof cell === 'string' で文字列かどうかをチェックします。
  • .replace(/[0-9]/g, s => String.fromCharCode(s.charCodeAt(0) - 0xFEE0))全角の数字の Unicode 値を半角の数字に変換 処理をします。
    • charCodeAt(0) で全角数字の Unicode を取得し、0xFEE0 を引くことで半角に変換します。
  • range.setValues(convertedValues) を使って、元の範囲に変換後の値を上書きします。
STEP
スクリプトを保存

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

(例:「半角数字に変換」)

STEP
スクリプトを実行

スクリプトを実行します。

初めてそのスクリプトを実行する場合は権限の確認が必要です。

そのため、『権限を確認』を押します。

許可の詳細手順

「詳細」をクリックします。

無題のプロジェクト(安全ではないページ)に移動」をクリックします。

許可」をクリックします。

STEP
完了

スクリプトを実行すると、選択した範囲の全角数字が半角に変わります。

これで計算も正しく行われます。

繰り返しのGAS実行もカンタン【マクロインポート】

マクロインポートをすることで、メニューの「マクロ」からGASを実行できるようになります。

STEP
「マクロをインポート」を選択

メニューから「拡張機能」>「マクロ」>「マクロをインポート」を選択します。

STEP
リストから対象のGASを選択

リストから先ほど作成したGASを、「関数を追加」してインポートします。

  • 半角数字に変換:toHalfWidth
STEP
マクロの名前を変更する

インポートするとマクロが追加されますが、関数名のままでは分かりづらい状態です。

そのため、「拡張機能」>「マクロ」>「マクロを管理」から追加されたマクロの名前を選択します。

追加したマクロの名前をクリックして、わかりやすい名前に変更します。

  • toHalfWidth → 「全角 → 半角数字」

(追加したマクロをショートカットキーとして割り当ても可)

STEP
マクロの名前が変更されたことを確認

マクロの名前が変更されたことを確認します。

これで「拡張機能」ー「マクロ」から簡単にGASを実行できるようになります。

繰り返し実行する時に便利です。

注意点

  • 変換対象は選択した範囲内のセルのみです。範囲選択をお忘れなく。
  • GASの初回利用時は、Googleから承認を求められる場合があります。
    画面の指示に従って許可を行ってください。(権限の確認)

まとめ

全角数字と半角数字の混在による計算エラーは、GASを使うことで簡単に解決できます。

手間のかかる作業を効率化し、業務の生産性を高めましょう!

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

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

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

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

お問い合わせはこちら

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

コメント

コメントする

目次