アルファベットと数字でできた文字列の入った列を、アルファベットの列と数字の列の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開く際に「列の種類」を「標準」でなく「テキスト」に変更してから開く。(プレビュー表で変更したい列を選択してから、変更)
※ゼロ落ち…セルに表示される数値において、数字の左端の0が表示されなくなる現象。例えば、「0123」という値が「123」と表示されてしまう。
その文字が文字列と認識されるとゼロ落ちは発生しないが、数値と認識されるとゼロ落ちする様子。
参考情報:検証環境
Libre Office Calc 5.2.7.2.
Windows 7 professional (64bit OS、6GB?メモリ)