• ベストアンサー

エクセル 文字を1つのセルに1文字ずつ入力した形に変更するには

いつもお世話になります。 エクセルの1セルに、13ケタの商品コードがあります。 これを、別シートのフォーマットにある、13コのセルに1字ずつに分割したいのです。 例えば、"4901234567890"という数値がセルに入力されていて、別シートのA1には"4"A2には"9"、A3には"0"・・・という形です。 同様に、商品名等の情報も、1文字ずつセルに入力していきたいのですが、そのようなことを可能にする技術がありますでしょうか? 以上宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 No.1の方の回答を応用して、 Sheet1のA1のデータを別のシートに分割するとします。 分割の上端のセルに、 =MID(Sheet1!$A$1,ROW(A1),1) と入力して下へ13桁分コピー 質問欄の内容は、A1、A2、・・・と下の行へ、ということでしたが、もし右へ、ということなら、数式を、 ROW→COLUMN に変更して下さい。

7-samurai
質問者

お礼

実は横方向にお願いしたかったものを、下方向で質問していました・・。 さすがmaruru01さんです。天才ですね。 いつもありがとうございます。 maruru01さんをココロの師と仰ぎ、精進していきますので、今後とも宜しくお願い致します。

その他の回答 (7)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.8

多分ビジネスのニーズが背後にあると睨みますが、 質問では縦並びに例示してありますが、縦に1字ずつ表示するニーズはありますか。 横並びではないですか。 それと郵便番号7桁で経験しましたが、そのように間隔用の1列をそれぞれ空けてませんか。 そういうことがあれば、式が変わったり、区切り位置では 対応できないかも知れません。 思い過ごしでしょうか。

7-samurai
質問者

お礼

ありがとうございます。 ご指摘の通り、横並びのニーズがあります。 ・・・というか、間違えて縦並びでお願いしていました。 ですが、他の方々からも、横並びの場合の解決法も教えていただきましたので、今の所は問題ないです。 ただ、「間隔用の一列をそれぞれ空ける」とはどのような手法でしょうか? また必要になった時に載せさせていただきますので、その時は宜しくお願い致します。

  • ya_kar
  • ベストアンサー率46% (6/13)
回答No.7

分割したいセルを選択し、ツールバーの[データ]-[区切り位置]を選択。 スペースによって右または左に…を選び、区切りたい位置をクリックしてゆく。 列を選択することもできます。

7-samurai
質問者

お礼

初めて知る機能だったので、「こんな機能があったのか」とビックリです。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

文字型のデータを1文字ずつでいいなら 「データ」「区切り位置」で「スペースによって...」を選択して 1文字ずつに区切りを入れれば簡単です。 半角と全角が混在する場合は、空白の列ができる可能性がありますが... MID関数を使う場合は B1=IF(LEN($A1)>COLUMN()-1,"",MID($A1,COLUMN()-1,1)) として横にコピーしてください。 計算結果をコピーして、形式を選択して貼り付けで 値として貼り付けすれば良いでしょう。

7-samurai
質問者

お礼

親切に、IF関数までつけていただき、ありがとうございました。 ぜひ活用させていただきます。

回答No.4

一番簡単だと思われる方法は、別シートのA1に「=MID(Sheet1!$A$1,1,1)」、A2に「=MID(Sheet1!$A$1,2,1)」、A3に「=MID(Sheet1!$A$1,3,1)」、A4に「=MID(Sheet1!$A$1,4,1)」...というようにA13まで数式を入れます。(元ネタの商品コードがSheet1のA1にあるとします) MID関数の意味は、ある文字列のある位置から何個分の文字を切り取るということです。 MID([元ネタのシート名]![元ネタのセル],[開始桁][切り取る文字の数]) 元ネタのセルを絶対参照(セルの名前に$が付いているやつです)にしているのは、セルをコピーした時にずれないようにするためで、$がなくてもいいです(例:A1)。

7-samurai
質問者

お礼

ありがとうございました。 「MID関数」初めて知りました。 ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

A1~A13に =MID(""&Sheet1!$A$1,ROW(),1) をコピーする あと、同様

7-samurai
質問者

お礼

何文字目かを数式で代入できるという発想がスゴイですね。おバカの私では到底一人では到達できませんでした。 ありがとうございました。

  • error123
  • ベストアンサー率21% (54/247)
回答No.2

Sheet1のA1に、"4901234567890"が入っている場合。 別シートのA1に =RIGHT(LEFT(Sheet1!$A$1,ROW(A1)),1) をコピー&ペーストして、A2方向にA13までドラッグして式を入れてみて。

7-samurai
質問者

お礼

コピー&ペーストで済む分、MID関数より楽ですね。 ありがとうございました。

  • bajjo
  • ベストアンサー率41% (12/29)
回答No.1

こんにちわ。 MID関数じゃだめでしょうか? たとえば、A1のセルに「4901234567890」と入力されていて、それを1文字づつ他のセルに入力させるためには、その表示させたいセルの中に、 =MID($A$1,1,1) と入力すれば、一番左端の数字「4」 =MID($A$1,2,1) と入力すれば、左から2番目の数字「9」 と・・・というふうにもってこれます。かなや漢字なども同じ数式で大丈夫なので、商品名も入力可能かと思います。 あとはそれを繰り返して数式を入力していけば大丈夫じゃないかなーと思いますが、どうでしょう?※ちょっと数式の入力が面倒かとは思います。

7-samurai
質問者

お礼

MID関数を知らなかったので、今後の作業が非常に楽になりそうです。ありがとうございました。 P.S 数式の入力方法については、ROW関数やCOLUMN関数で値を代入できるようです。他の方々から教えていただきました。

関連するQ&A