• ベストアンサー

エクセル 文字を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/17068)
回答No.8

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

7-samurai
質問者

お礼

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

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

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

7-samurai
質問者

お礼

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

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答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

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

    いつもお世話になります。 昨日、MID関数等で、1つのセルに入力されている情報を1文字ずつセルに入力する方法を知ったのですが、それを右詰めにする方法はありますでしょうか。 例;Sheet1に、6ケタまでの数値を入れるセルがあります。 これをSheet2のA1~F1のセルに1字ずつ入れたいのですが、Sheet1に"1000"と入れた場合、Sheet2のセルA1~F1には A1=(空白),B1=(空白),C1="1",D1="0",E1="0",F1="0" という形にしたいのです 以上宜しくお願い致します。

  • Excelで、ある範囲内の最大値や最小値の『文字の形』や『文字の大きさ』を変えたいのですが・・・

     エクセルの初心者です。よろしくお願いいたします。  ある範囲内(複数のセル・行・列・シート)で、数値の最大値と最小値の文字の『形』や『色』を変えたいのです。  例えば、「セルA1」から「セルA100」までに入力されている、100個の数値の中で、  最大値は「明朝体」に、  最小値は「斜体」に、  変えるということを行いたいのです。  簡単な方法があればお教えください。よろしくお願いいたします。

  • セルに入力したら、別の特定セルに文字表示させるには

    似たようなQ&Aはあったのですが、求めているものとは少し違うので質問させていただきます。 エクセルで、指定したセルに数値を入力したら、 別シートの特定セルに特定文字列を表示させる ということはできませんか。 例えば、sheet1のセルB3に「2」と入力したら sheet2のセルB5に「●」と表示 次に、sheet1のセルB4に「6」と入力したら sheet2のセルD11に「●」と表示 次に、sheet1のセルC3に「4」と入力したら sheet2のB9に「○」と表示           のようなかたちです。 sheet1の入力範囲は、B3:I85程度 sheet2の入力範囲は、B3:FZ170程度で、特定セルは重複しない 表示されるのは、「●」「○」などの文字列 です。 途中経過として、MATCH関数、ADDRESS関数を利用して sheet1のセルに数値入力をしたら sheet2の入力すべきセル番地を求めることまではできたのですが その求めたセルがすべて異なるので、それぞれのセルに移動させて 文字列を表示させることができずに困っています。 解決法をご存知の方、どうぞよろしくお願いいたします。

  • エクセルの入力規則について

    エクセルの入力規則について教えてください。 セルA1に7桁のコードを入力するとします。 7桁のコードは前の6桁を7で割った余りをMOD関数で 出し最後の1桁にしています。 コードが7桁であり、かつ、前の6桁を7で割った余りが末尾1桁の数値と等しくなければ、 エラーメッセージを出して入力を出来ないようにしたいのです。 入力規則のユーザー設定、数式を入れてメッセージを出すことは 可能でしょうか。 どうぞご教授お願いいたします。

  • エクセルで、セルに入力された文字を別なシートで数字

    エクセルで、セルに入力された文字を別なシートで数字で表すにはどうしたらいいのですか? いま、会社でエクセルVBAを使って表を作っています。 そこで、例えば、 Sheet2で、セルA1に○○会社 ~、セルA2に△△会社と入力したら、 Sheet1で、数字で、2 と表すには、どういう風に作ればいいのでしょうか?

  • Excel セル内の文字だけを取り出すには

    Excelの1つのセルに 01234 ABCDEFG のように、「数字5つ(固定)+半角スペース+(任意の数の)文字」 が入力されています。数値は必ず5桁と決まっていますが、 文字列の数はさまざまです。 関数で文字の部分だけ、別のセルに取り出したいのですが、 どの関数を使うとできますか?教えて下さい。 よろしくお願いします。

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • エクセルのセル入力に関して

    初めて投稿させて頂きます。 ご回答していただける方、よろしくお願いいたします。 エクセルのセルに数値を入力し、一度確定した後に もう一度同じセルに数値を入力した場合に 前回の数値を引き継いで加算を行うことは可能ですか? 例: セルA1に、数値5を入力。 その後、セルA1に7を入力し確定すると12と表示する方法 ご存知の方がいらっしゃいましたらご教授願います。

  • Excel 1つのセルに入力された文字列(数値)を 最初の2桁は、次の

    Excel 1つのセルに入力された文字列(数値)を 最初の2桁は、次の3桁はなど別々のセルにその数値を張るつけることは可能でしょうか??c=232

  • エクセルで数値と文字が入ったセルからの数値の抽出

    皆さんこんにちは。 エクセルの使い方についての質問です。 添付画像の例のようにA列に 「XXYYYZZ(XとZは文字、Yは数値で3桁または4桁)」というフォーマットで 数値と文字が入っているセルがあります。 同様にB列には「WWZ(Wは数値)」というフォーマットで、 同様に数値と文字が入っているセルが並んでいます。 これらからDやE列にあるように数値のみを取り出すためには DやE列にどのような関数を入れてやればよいのでしょうか。 どなたか教えていただければ幸いです。 よろしくお願いします。

専門家に質問してみよう