最大1万円超分の電子書籍プレゼント♪

いつもお世話になります。

エクセルの1セルに、13ケタの商品コードがあります。
これを、別シートのフォーマットにある、13コのセルに1字ずつに分割したいのです。
例えば、"4901234567890"という数値がセルに入力されていて、別シートのA1には"4"A2には"9"、A3には"0"・・・という形です。

同様に、商品名等の情報も、1文字ずつセルに入力していきたいのですが、そのようなことを可能にする技術がありますでしょうか?

以上宜しくお願い致します。

gooドクター

A 回答 (8件)

こんにちは。

maruru01です。

No.1の方の回答を応用して、
Sheet1のA1のデータを別のシートに分割するとします。
分割の上端のセルに、

=MID(Sheet1!$A$1,ROW(A1),1)

と入力して下へ13桁分コピー

質問欄の内容は、A1、A2、・・・と下の行へ、ということでしたが、もし右へ、ということなら、数式を、
ROW→COLUMN
に変更して下さい。
    • good
    • 4
この回答へのお礼

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

お礼日時:2004/12/16 16:44

多分ビジネスのニーズが背後にあると睨みますが、


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

ありがとうございます。
ご指摘の通り、横並びのニーズがあります。
・・・というか、間違えて縦並びでお願いしていました。
ですが、他の方々からも、横並びの場合の解決法も教えていただきましたので、今の所は問題ないです。

ただ、「間隔用の一列をそれぞれ空ける」とはどのような手法でしょうか?
また必要になった時に載せさせていただきますので、その時は宜しくお願い致します。

お礼日時:2004/12/16 13:53

分割したいセルを選択し、ツールバーの[データ]-[区切り位置]を選択。


スペースによって右または左に…を選び、区切りたい位置をクリックしてゆく。

列を選択することもできます。
    • good
    • 3
この回答へのお礼

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

ありがとうございました。

お礼日時:2004/12/16 13:43

文字型のデータを1文字ずつでいいなら


「データ」「区切り位置」で「スペースによって...」を選択して
1文字ずつに区切りを入れれば簡単です。
半角と全角が混在する場合は、空白の列ができる可能性がありますが...

MID関数を使う場合は
B1=IF(LEN($A1)>COLUMN()-1,"",MID($A1,COLUMN()-1,1))
として横にコピーしてください。
計算結果をコピーして、形式を選択して貼り付けで
値として貼り付けすれば良いでしょう。
    • good
    • 2
この回答へのお礼

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

お礼日時:2004/12/16 14:03

一番簡単だと思われる方法は、別シートの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)。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2004/12/16 14:06

A1~A13に


=MID(""&Sheet1!$A$1,ROW(),1)
をコピーする
あと、同様
    • good
    • 1
この回答へのお礼

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

ありがとうございました。

お礼日時:2004/12/16 16:37

Sheet1のA1に、"4901234567890"が入っている場合。



別シートのA1に

=RIGHT(LEFT(Sheet1!$A$1,ROW(A1)),1)

をコピー&ペーストして、A2方向にA13までドラッグして式を入れてみて。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/12/16 14:08

こんにちわ。


MID関数じゃだめでしょうか?

たとえば、A1のセルに「4901234567890」と入力されていて、それを1文字づつ他のセルに入力させるためには、その表示させたいセルの中に、

=MID($A$1,1,1)
と入力すれば、一番左端の数字「4」
=MID($A$1,2,1)
と入力すれば、左から2番目の数字「9」
と・・・というふうにもってこれます。かなや漢字なども同じ数式で大丈夫なので、商品名も入力可能かと思います。
あとはそれを繰り返して数式を入力していけば大丈夫じゃないかなーと思いますが、どうでしょう?※ちょっと数式の入力が面倒かとは思います。
    • good
    • 2
この回答へのお礼

MID関数を知らなかったので、今後の作業が非常に楽になりそうです。ありがとうございました。

P.S 数式の入力方法については、ROW関数やCOLUMN関数で値を代入できるようです。他の方々から教えていただきました。

お礼日時:2004/12/16 15:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このカテゴリの人気Q&Aランキング