Googleスプレッドシートで全角文字列としてセルに入力された数字を数値形式に変換したい。
「商品名を全角の日本語入力で記入して、価格の欄でいちいち半角に切り替えるのが面倒」
「複数人で共有している表が全角半角の使い方が統一されてなかった」
「セルに入力された数値を取得して計算しようとしたら文字列だった」
スプレッドシートは自由度が高く様々な使い方ができます。しかしそれ故に値の入力方法など各人バラバラで、表の見た目も汚くなり、それだけではなくデータとしても使い難くなりがち。
入力規則は事前に決めておくのは当然ですが、それでも長期間管理していると「バグ」みたいに、規則に反した方法で入力されてる事もしばしば。完璧はなかなか難しい。
価格の値が”全角”、”半角”、”全角半角”が混在しています。これ程の汚表は現実的にはあり得ないとは思いますが、規則に反した方法で入力された値でも修正さえできれば後でデータとして使用するのに問題はありません。
そこでこの記事では、Googleスプレッドシートで全角文字列で入力された数字を数式を使って数値に変換する方法を紹介します。
|
全角文字列を半角英数に変換する
全角文字列を半角に変換するには
ASC()
の関数を使います。
ASC()関数は、全角 ASCII 文字とカタカナ文字を半角文字に変換します。
数式 | 結果 |
---|---|
SC(“ABCDEabcde”) | ABCDEabcde |
ASC(“1234”) | 1234 |
ASC(“アイウエオ”) | アイウエオ |
全角文字列の英数字をASC()関数で半角英数字に変換します。
=ASC(B2)
全角文字列の数字が、半角数字に変換されました。
半角文字列の数字を数値に変換する
半角文字列の数字を数値に変換するには
VALUE()
の関数を使います。
VALUE()関数は、数字を含む文字列を数値に変換します。
VALUE(“45”)のように文字列の数字や、VALUE(“11/23/2020”)、VALUE(“13:12:45”)のような日付や時刻の書式で表示される数字の文字列を数値に変換します。
注意が必要なのは、数字の文字列を変換すると数値が返されますが、日付や時刻を変換すると、シリアル値が返されます。
数式 | 結果 |
---|---|
VALUE(“45”) | 45 |
VALUE(“2020/11/23”) | 44158 |
VALUE(“13:12:45”) | 0.5505208333 |
※シリアル値は1900年1月0日から数えた数字です。
全角文字列の英数字からASC()関数で変換した半角英数字をVALUE()関数で数値に変換します。
=VALUE(ASC(B2))
全角文字列の数字が、数値に変換されました。
数値を日付や時刻、通貨などの表示形式にする
全角文字列から数値に変換できましたが、数字だけだと何の数字なのかわかりにくいので、数字の表示形式を設定します。商品の価格だとわかるように数字の表示形式を通貨に設定します。
メニューバーから 表示形式 > 数字 > 通貨(端数切り捨て) を選択
「¥」が付いた円通貨の表示になりました。
セルの値を数式から数値にする
文字列から数値に変換する事ができましたが、セルの値はあくまでも表示のみです。
セルの値をコピーして他のセルやテキストなどにペーストすると、当然ですが数値ではなく、数式が貼り付けられます。
変換した数値のセルをコピーして、価格の列にペーストするとエラーが返されます。
シート内の表だけで完結するのであれば、これでも問題ありませんが、値をコピーするなど他でも使用するなら、数式ではなくコピーアンドペーストできる値に変換しておきたい。
そこでセルに表示されている値を他でも活用できる様に数式から数値にします。
変換した数値のセルを選択してコピーします。
価格の列にペーストする際に、右クリッックで(Mac:[control]+クリック)でコンテキストメニューを表示。
特殊貼り付け > 値のみ貼り付け を選択
又は
[Ctrl] + [Shift] + V
価格列のセルに数式では無く、数値が入力されました。
値のみ貼り付けたので、通貨の表示形式が無くなりました。
先ほどと同様に通貨の表示形式を設定します。
まとめ:全角文字列の数値への変換は関数ASC()とVALUE()
Googleスプレッドシートで全角文字列で入力された数字を計算が可能な数値に変換する方法を紹介しました。
表を複数人で管理すると、全角半角の使い方が各人でバラバラで、一見正しく値が入力されているように見えても、「数値のつもりで値を取得したら文字列だった」なんて事が起こりがち。 表を作成する際は事前に入力規則を決めておく事が最も大事ですが、定期的に変換して整頓するのも良いと思います。
全角文字列を半角に変換する関数は
ASC()
半角文字列の数字を数値に変換する関数は
VALUE()
|
|
|
国内で10年前からサービスを提供しているタスク管理・プロジェクト管理ツール。
利用者が100万人を超え、エンジニアの方以外にも、事務やデザイナー、マーケター、営業など、多様な職種の方にお使いいただいています。 |
|
|
|
|
|