ア○バン

エクセル

9:30〜20:00。今日は色々。午前中は巨大なデータを眺め、午後はI川さんの調査準備と簡単なデータ入力。いろんな所から呼ばれるので遊撃部隊だなと思った。

今日のお題

エクセルのある列に

A
1 001-001
2 001-002
3 001-003
4 002-001
5 002-002
6 002-003

の様に入力されている。これを

A B
1 060001 001
2 060001 002
3 060001 003
4 060002 001
5 060002 002
6 060002 003

の様に2列に分けよとの指令が入った。どうする?ちなみにデータの数は数千件程度有るので全て手作業で入力し直たり、コピペで頑張るのは無しにしよう。

解答編

ここではMID関数を使って解決する方法を思いついた*1
結果のB列を得るには適当な列、例えばC列に次の数式を入力すれば得られる。

C1=MID(A1,5,3)

A列も同様に考えれば、頭に"060"を付け加えれば良いだけなので

D1="060"&MID(A1,1,3)

とする。数式を下の方までコピーしておけば表は次のようになっている。

A B C D
1 001-001 001 060001
2 001-002 002 060001
3 001-003 003 060001
4 002-001 001 060002
5 002-002 002 060002
6 002-003 003 060002

後は適当に切り貼りすれば良いだろう。あ、貼り付ける時には『値』で貼り付ける事を忘れないようにね。*2

*1:後から思ったが、LEFT関数とRIGHT関数を使い分けても良かったな。

*2:追記。これらの実行結果は文字列となっているので0を足せば数値になる。その際、「001」は「1」と表示される様になるが表示形式で「000」を指定すれば上の様に表示される。6桁なら「000000」とする。