« 運動会とかでスタートのときに「パンッ!」っていわせるやつ。 | トップページ | Excelで、姓と名前の間に全角スペースを入れる。 »

Excel で、製品番号と品名を関数で分けてセルに入れる。

この記事は自分用の覚書です。

Y.S さん。
製品番号と品名がくっついているデータを一つのセルにコピー貼り付けしたら、それぞれが別のセルに入力されるようにする例です。
( Excel2013 Home & Business )

■例: MX100 - Hard Disk を MX100 と Hard Disk に分ける。

関数で番号と文字の分離の例

A2に MX100 - Hard Disk をコピー貼り付け。

B2 に =FIND("-",A2) を入力。

C2に =LEN(A2) を入力。

・ - より左側を抽出
=LEFT(A2,B2-2)
- (ハイホン)を目印にできるので、FIND関数でハイホンが何文字目に来るかを調べる。
LEFT関数で文字列の左端から文字を抜き出す。何文字目まで抜き出すかは「ハイホンの位置-2」で指定できる。
ハイホンの位置が 7 なので5文字まで抜き出すことになる。7 はスペースを含んで数えているので、2を引くことになる。

・ - より右側を抽出
=MID(A2,B2+2,C2)
上と同様に考えて、FIND関数でハイホンの位置を調べた値に 2 を足すと、MID関数で文字を抜き出し始める「開始位置」を指定できる。ハイホンの位置が 7 なので9文字目から抜き出すことになる。

何文字目まで抜き出すかの指定には、LEN関数で求めた元の文字列の全文字数を使っている。
当然ながら、ハイホンより右側は元の文字列よりも文字数が少ない。
ハイホンより右に書いてある文字数(スペース含む)以上であれば、抜き出す数にいくつを指定してもかまわないということ。書いてある文字以外は表示されるはずはないので。

それならば、抜き出す文字数として元の全文字数を使っておけば、「ハイホンより右側」が何文字になっても、常に右側全部を抜き出せる。

■使っている関数について
使っている関数は4種類。
FIND関数、LEN関数、LEFT関数、MID関数。

FIND関数は、指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返す。

LEN関数は、文字列の文字数を返す。

LEFT関数は、文字列の先頭から指定された数の文字を返す。

MID関数は、文字列の指定された位置から指定された文字数の文字を返す。

■留意点1(入力するときは、1セル1データ・1件1行で。)
例の画像では、ブログの横幅内におさめるためにわざと表を重ねています。

エクセルでデータを入力するときは画像のような表の作り方をしてはだめです。
このような表の場合、これから2行目以降にどんどんデータを入れていくはずです。エクセルでそんな表を作るときは、1セル1データ・1件1行になるように作ってください。
これから計算したり分析したりするデータを入力するときは「セルの結合」も使いません。入力のときは、とにかく1セル1データ・1件1行になるようにします。

「文字列」「-の位置」「A列の文字数」「-より左側」「-より右側」……

と列見出しが並ぶように。
「価格」や「重量」「寸法」といったほかの項目がまだあるなら、それらも列として並べます。
列が増えて困るのでしたら非表示にすればいいだけです。

■留意点2(自分以外の人が見てもわかりやすいように。)
仕事でファイルを作るときは、「自分以外の人もそのファイルを使う」、「そのファイルは他者に引き継ぐもの」ということを忘れないようにしてください。
この例では4種類の関数を使っていますが、次にファイルを使う人が自分と同等の理解があるとは限りません。仕事で使うファイルは、誰が見てもわかりやすいように作ってください。

例のような場合、一つのセルに式を入れてしまいたくなりがちですが、一つのセルで、

=LEFT(A2,FIND("-",A2)-2)

=MID(A2,FIND("-",A2)+2,LEN(A2))

と入力すると、関数に不慣れな人はぱっと見て、何をどうやっているのかイメージできません。
計算の段階を分けておくことで、どういうことをやっているのかがイメージしやすくなります。

個々の関数がどんな関数なのかは、後任の人が学んで理解するしかありません。そこは本人の努力が必要なところです。
その際に関数に不慣れな人にとって難しいのは、関数がどんな働きをするかをイメージすることかと思います。
不慣れな人でもイメージしやすいように、理解を助けるようにファイルを作っておけば、次にそのファイルを使う人の学びを円滑にできます。

一つひとつはわずかなことですが、そのことは組織全体の生産性の向上にもつながっていきます。
5秒迷うことが20回あると1分迷ったことになります。それを60人がやっていたら1時間になります。

そのように考えると、「そのぐらいわかっておけ」「それぐらいググれ」というのは、自分がやったことの結果に対する考えが浅いというものです。あとでそんなことを言わなくてもよいように最初からしておくべきです。それが効率の良い仕事というものでしょう。

また、関数は単体ではなく「組み合わせて使うもの」ですが、「一つの長い式にして使うもの」ではありません。
(例では関数の結果を別の関数内で使う値として「組み合わせ」ています。)

「一つの長い式が作れることはいいことだ・そうするべきだ」と考えるのは勘違いです。

長い式を作れること自体は、いけないことではありません。ですが、「自分以外の人が見てわかりやすくする」ことは、仕事で使うファイルにはもっと大事なことです。

一つの長い式で処理したくなったら、「そうすることが、他の人にとって見やすいだろうか、わかりやすいだろうか」、「どうやったら自分以外の人も見やすいのか、わかりやすいのか」と考えるようにしてください。

また、「仕事を引き継ぐ」ということを考えると、「なんだかよくわからないファイル」を作らないようにしてください。

  • インターネットに書いてあったことをコピペしたら、なんだかよくわからないけれどできた。
  • 掲示板で教えてもらったとおりにしたら、なんだかよくわからないけれどできた。

とかいうのが「なんだかよくわからないファイル」が職場で生まれる主な原因です。

インターネットを使うなということではありません。使ってより便利になるなら使うべきです。

重要なのは、その際に「なんだかよくわからないことはなくす」、「なにをどうやっているのかを、他人にわかりやすく説明できるぐらいにわかっておく」ということです。

そうでないと、ファイルを引き継いだ人が迷惑します。少し変えたいと思っても何もできません。前任者がなんだかよくわかってないんですから、後任者に説明のしようがないので。

よくわからないので後任者はインターネットで情報を探します。そして、見つけたものをコピペしたり、掲示板で教えてもらったことをやってみたりします。

そしてまた、なんだかよくわからないけれどやりたいことができたファイルが生まれます。

|

« 運動会とかでスタートのときに「パンッ!」っていわせるやつ。 | トップページ | Excelで、姓と名前の間に全角スペースを入れる。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Excel で、製品番号と品名を関数で分けてセルに入れる。:

« 運動会とかでスタートのときに「パンッ!」っていわせるやつ。 | トップページ | Excelで、姓と名前の間に全角スペースを入れる。 »