セル内の日本語と数字を分ける方法:ExcelとGoogle Sheetの場合
社会福祉学の授業で、PDF文書の表をエクセルに貼り付けて並べ替えようと思ったら、うまく張り付きません。
事前に自宅のWindowsでやったときはできたのですが、なぜか大学では次のようになります。
再現のためのデータは下記です。
オーストリア50.7 |
ベルギー52.4 |
チェコ53.9 |
デンマーク54.1 |
フィンランド49.4 |
カタカナと数字を別のセルにわけたいのですが、どうしましょうか?
授業で私はギブアップしてしまったのですが、後ほどネットで調べてみるといろいろな方法を見つけました。
一番簡単で納得できるやりかたが下記(Helping Tool)にありましたので紹介します。
http://n-hirahira18.at.webry.info/200801/article_7.html
ポイントは、カタカナの文字数と数字の文字数を数えて、LEFT関数にカタカナの文字数をいれてカタカナを抜き出す、RIGHT関数に数字の文字数をいれて数字を抜き出すことです。
A.Excelの場合は簡単
B1に次のように書きます
=LEFT(A1,LENB(A1)-LEN(A1))
LEFT(セル番号、文字数)は、指定されたセルの、左から文字数の文字を抜き出す関数です。
LEN(セル番号)は、指定されたセルの1バイトの文字(半角数字やアルファベット)の文字数を数える関数です。
LENB(セル番号)は、セルのすべての文字(1バイト文字や2バイト文字(全角カタカナ、ひらがな、漢字)の文字数を数える関数です。
上の二つの関数を利用して(総文字数ー数字の文字数)で、カタカナの文字数を算出し、それをLEFT関数の引数(読みは「ひきすう」、英語はargument)として、カタカナ部分を抜き出します。
C1に次のように書きます。
=RIGHT(A1,LENB(A1)-LENB(B1))
A1セルの総文字数から上で抜き出したカタカナの文字数を引いて、それをRIGHT関数のアーギュメントとして、数字部分を抜き出します。
他の行にもコピーすると次のようにカタカナと数字を分けることができました。
B.Google Sheetの場合はLENB関数を作成
Google Sheetsには、LENB関数がないので作成する必要があります。
1.Google Sheetsにおける関数の作成方法(JavaScriptで書きます)
https://developers.google.com/apps-script/guides/sheets/functions#using_a_custom_function
2.hayamamoto氏のLENB関数のスクリプト
https://gist.github.com/hyamamoto/e0ea24f76fa23772e651
2のリンクのページのスクリプトをGoogle SheetsのToolsのScript Editorに貼り付けます。詳しくは1を参照してください。
あとは、Aと同じです。下のようになります。
ところで、3年生ゼミはMac教室ですが、Safariのバージョンが古いためNumbersしか利用できません。Numbersでどのようにセル内の日本語と数字を分けるかは、まだ、確認していません。