LibreOfficeCalc:アルファベットと数字でできた文字列を、アルファベットと数字の2列に分ける方法

アルファベットと数字でできた文字列の入った列を、アルファベットの列と数字の列の2列に分ける方法が、Microsoft Office ExcelとLibre Office Calc(フリーソフト)で違っているのか、Excelと同じ方法では正しい結果が表示されなかった。
Libre Office Calcで試した方法をメモ。



■欲しい結果

A列 B列 C列
1行目 Neko30010000 Neko 30010000
2行目 RED660100 RED 660100
3行目 XS12000 XS 12000

元の文字列(A列)はそのままに、A列の値をアルファベットの部分(B列)と数字の部分(C列)に分けて表示したい。

■Libre Office Calcでの設定方法

B1セル
 =LEFT(A1,MIN(SEARCH(“[0-9]”,A1))-1)
C1セル
 =RIGHT(A1,LEN(A1)-LEN(B1))

C1セルは、数値ではなく文字列として表示される。C1セルを文字列から数値に変換する(=計算式やピボットでの加工に使える値にする)には、C1セルを以下のように設定する。

C1セル
 =IFERROR(VALUE(RIGHT(A1,LEN(A1)-LEN(B1))),RIGHT(A1,LEN(A1)-LEN(B1)))

■参考:関数の解説

・LEFT関数

 LEFTは「左」という意味の英単語
 使用例:LEFT(A1セル,5)
 A1セルの値を、左から5文字分取得して表示

・RIGHT関数

 LEFTは「右」という意味の英単語
 使用例:RIGHT(A1セル,5)
 A1セルの値を、右から5文字分取得して表示

・SEARCH関数

 SEARCHは「探す」という意味の英単語
 使用例:SEARCH(“C”,A1)
 「C」という文字が、A1セルの左端から数えて何番目にあるかを返す
  例えば、A1セルが「Soccer」という値なら、3を返す
 「C」「c」のどちらでも返ってくる値は同じ(大文字と小文字を区別しない)

・MIN関数

 MINは「MINIMUM」の略。MINIMUMは「最も小さい」という意味の英単語
 最小値を返す
 MIN(1,2,3)なら最も小さい値である1を返す
 MIN(A1:A3)ならA1,A2,A3のセルの値のうち、最小の値を返す

・VALUE関数

 VALUEは「数値」という意味の英単語
 文字列を数値に変換する
 文字列と認識されている値は、セル左寄せで表示される。数値と認識されていれば右寄せで表示

・LEN関数

 LENは「LENGTH」の略。LENGTHは「長さ」という意味の英単語
 使用例:LEN(A1)
 セルに含まれる文字数を返す
 1バイト文字(0やA)と2バイト文字(0やA)を区別しない

・IFERROR関数

 IFERRORは「IF」と「ERROR」が組み合わさった言葉。
 IFは「もし…なら」、ERRORは「エラー」という意味の英単語で、IFERRORは「もしエラーなら」という意味になる。

 使用例:IFERROR(A1,”間違ってます!”)
 A1セルの演算結果がエラーでなければ、演算結果を表示する
 エラーであれば、エラーを表示する代わりに、「間違ってます!」という文字を表示する

■参考:CSVファイルの取り扱いに関する注意

CSVファイルで受領した場合、ゼロ落ちを防ぎたいセルは、libre office開く際に「列の種類」を「標準」でなく「テキスト」に変更してから開く。(プレビュー表で変更したい列を選択してから、変更)

Libre Office Calcでcsvファイルを開いた直後に取得した、画面キャプチャ。「テキストのインポート」と書かれた画面が開いており、「列の種類」の欄で「標準」か「テキスト」を選択し、カラムのデータ型を変更できるようになっている。

↑ csvファイルをLibre Office Calcで開いた直後の画面

※ゼロ落ち…セルに表示される数値において、数字の左端の0が表示されなくなる現象。例えば、「0123」という値が「123」と表示されてしまう。
 その文字が文字列と認識されるとゼロ落ちは発生しないが、数値と認識されるとゼロ落ちする様子。



■参考:検証環境

Libre Office Calc 5.2.7.2.
Windows 7 professional (64bit OS、6GB?メモリ)