• ベストアンサー

ひとつのセル内の文字列を複数のセルに分割する

MackyNo1の回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

E列の不規則なセルに入力されている1~2桁、スペース、1桁、スペース、2桁の数字を、A~C列に3行ごとに規則的に分割して入力したいということですね。 その場合、E列にはそれらの数字以外のセルは空白なのでしょうか? また、A~C列の数式以外の部分はすでに入力済みのデータなのでしょうか? また、表示した数字データはその後それらの値を数式などに使用しない(結果を表示するだけなの)のでしょうか? 一回限りの操作なら、エクセルの一般機能を利用した操作をお勧めしますが、データを変更した同じような処理を何回もしたい場合は、VBAまたは関数を使う必要があります。 例えば、E列には数字の組み合わせ以外には何も入力されておらず、A~C列にはすでにデータが入力されているなら以下のような操作で一括して必要なセルに数式を入力することができます。 A列のデータ範囲を選択して、Ctrl+Gでジャンプダイアログを出して、「セル選択」「空白セル」でOKして、そのまま数式バーに以下の数式を入力し、Ctrlキーを押しながらEnterします。 =TRIM(LEFT(INDEX($E:$E,SMALL(INDEX(($E$1:$E$100="")*1000+ROW($E$1:$E$100),),ROW(A3)/3)),2)) 同様にB列を選択して、以下の数式を一括入力します。 =LEFT(RIGHT(INDEX($E:$E,SMALL(INDEX(($E$1:$E$100="")*1000+ROW($E$1:$E$100),),ROW(A3)/3)),4),1) C列には以下の式を入力します。 =RIGHT(INDEX($E:$E,SMALL(INDEX(($E$1:$E$100="")*1000+ROW($E$1:$E$100),),ROW(A3)/3)),2) これからフォーマットを作成するなど、A~C列に既入力データが無い場合は、A3~C3セルに上記の数式を入力し、A1~C3セルを選択して下方向にオートフィルしてください。 文字列数字ではなく、実際の数値データにしたい場合は上記の式の最後に「*1」を追加してください。 #補足説明では操作の目的などが記載されていませんので、ひとまず関数の方法を紹介しましたが、同じ操作を繰り返す必要が無い(このような操作がしたい)ということがご希望なら、複雑な関数で対応するのではなく一般機能で対応されることをお勧めします。

gekikaraou
質問者

補足

ご回答ありがとうございます。 E列のほかの部分には文字だったり、数字だったりのデータが存在します。 また、 A-C列の部分は以下の様になっています。     A            B          C 1  日付 英数字       漢字        漢字 2  E列の最初の数字 E列の2番目の数字  E列の3番目の数字 3  数字           数字         数字 こんな感じですが、これが繰り返し456セルと続きます。 教えて頂いた関数を入れてみました。 A3を選択し、Ctrl+G でジャンプダイアログ から セル選択 セル空白を押しOKするとデータ周囲が全部選択されました。 そのまま関数を貼り付けして、Ctrl+Enter で、その選択された全部のセルに他のデータが貼り付けられてしまいました。 どこかいけないところがあったのでしょうか? また、この作業は毎日、100回近くする必要がありますので、なるべく効率的に行いたいと思っています。 以上、ご報告でした、よろしくお願いいたします。

関連するQ&A

  • エクセルで複数のセルにセルにある数字を1つのセルに

    こんばんは、エクセルに関してあまり詳しくないので教えて頂けませんか? A1のセルに1 B1のセルに3 C1のセルに5と、数字が1~8まで並んでいます。 その数字を、ほかの一つのセルに、135~と8桁表示するにはどうしたらよいでしょうか? その数字はrank関数で入力されたものです。 詳しい方よろしくお願いいたいます!

  • エクセルの文字列結合

    ご存知の方がいらっしゃいましたらよろしくお願い致します。 エクセルの文字列でA1のセルに「あ」と入れて、 B1のセルに「い」、C1のセルに「う」と入力して、 D1のセルに「A1&B1&C1」という数式を立てれば D1のセルは「あいう」となるのですが、 A1のセルに「あ」と入力して B1のセルに「0001」と半角で入力し、C1のセルに 「A1&B1」という数式を立てれば C1のセルが「あ1」となってしまいます。 そこでC1のセルを「あ0001」とするには どうしたらよろしいでしょうか? 0001は0002、0003・・・と続いていくため、 文字列扱いにはできません。 なんとかして A1に「あ」B1に「0001」C1のセルを自動で「あ0001」 A2に「あ」B2に「0002」C2のセルを自動で「あ0002」 A3に「あ」B3に「0003」C3のセルを自動で「あ0002」 としたいのです。よろしくお願い致します。

  • 対象セル内(複数)が埋まったら文字を表示させたい

    よろしくお願い致します。 エクセルで A1からA10のセルに月末にはなんらかの数字が入力されます。 A1からA10のセルに全て数字が埋まったらB1セルに『済』などの文字が 自動で表示されるようにしたいのですが、これは可能でしょうか? 可能でしたら方法をご教授下さい。 よろしくお願い致します。

  • 複数のセルを同時に削除する方法

    DATE関数を使って曜日をセルに表示させました。 セルA1→年(和暦入力) セルB1→月 セルC1→日 セルD1→曜日を表示する =IF(COUNT(A1:C1)<3,"",DATE(A1+1988,B1,C1)) このとき、セルA1に入力した数字をdelキーで削除したときセルB1とC1も空欄にすることが出来るでしょうか? 出来たら、関数で行いたいのですが ご存じの方教えて頂けないでしょうか? よろしくお願いします。

  • 複数のセルの文字列を;(セミコロン)を介してひとつのセルに文字列として結合するには?

    エクセルで以下のような事は出来るのでしょうか? 複数のセルの文字列を;(セミコロン)を介してひとつのセルに文字列として結合するには? 例) A  B  C     D    あ  い  う  →  あ;い;う ひょっとしたら同じような質問が無いかと思い、色々と探してみたのですが、見つけることが出来ませんでした。 大量のデータを入力する必要があり、大変困っています。 ご存知の方がおられましたら、ご教授頂けるとありがたいです。 宜しくお願いいたします。

  • 複数のセルの文字を違うシートの一つのセルに表示するには

    複数のセル たとえばA1:B8にそれぞれ文字が入っているとします それを別のシートの C5にまとめて表示させたいのですが 何か方法がありますか? 複数のセルに入っているのは数字ではなく文字で それをそのまま まとめて表示させたいのです 関数でできるのかと調べてみたのですが エクセルは初心者なものでいまいちわからなくて・・・

  • セルに入力されている数字列を 一文字ずつセルにふりわけたい

    たびたびよろしくお願いします。 ひとつのセルに6~7桁の数字が入力されてます。 (数字と数字の間にはスペースはありません) A 7桁の場合はこの数字を一文字ずつ  別のセルひとつひとつに  振り分けたいのですが 可能でしょうか? 例 「9654321」→   「9」「6」「5」「4」「3」「2」「1」 B 6桁の場合は頭にゼロを入力して   同様に別のセルひとつひとつに   振り分けたいのですが 可能でしょうか? 例 「654321」→   「0」「6」「5」「4」「3」「2」「1」  

  • あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように

    お世話になります。 表題の通り、 あるセルに特定の文字列を打つと、 他のセルにあらかじめ決められた文字が自動入力するようにしたいです。 具体的に言うと、 (1)セル(A,1)に「キリン」と打ち込むと    A   B   C   D 1 キリン 2 3 4 (2)1列目の B,C,Dに予め決めておいた文字が入力されるようにしたい    A   B   C   D 1 キリン 首  長い  アフリカ 2 3 4 のです。 エクセルで可能でしょうか? 詳しい方よろしくお願いいたします!

  • セルとセルの文字列を結合について

       A     B       C 1       2008/1/2   0:00:00 2       2008/1/2   0:15:00 3       2008/1/2   0:30:00 4       2008/1/2   0:45:00 5       2008/1/2   1:00:00 6       2008/1/2   1:15:00 ↓     A          B       C 1 2008/1/2 0:00   2008/1/2   0:00 2 2008/1/2 0:15   2008/1/2   0:15 3 2008/1/2 0:30   2008/1/2   0:30 4 2008/1/2 0:45   2008/1/2   0:45 5 2008/1/2 1:00   2008/1/2   1:00 6 2008/1/2 1:15   2008/1/2   1:15 といった感じにA列に Bの日付とCの時刻を半角スペースを挟んで 入力させたいのですが Excel上で以下の関数を使って手動でやると =CONCATENATE("2008/1/1"," ",0:15) 2008/1/1 0:00 と表示されるが マクロでの記述上では上手くいかない。 For i = 1 To 10 Range("A1,A10") = CONCATENATE(Cells(i, 2), Cells(i, 3)) Next ↑書き方としてはやっぱり間違ってる? 何かいい書き方ってないでしょうか・・? お手数おかけいたしますがよろしくお願いします。

  • EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいで

    EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいです。 例 A1セルは04+  B1セルは2000 C列に04+ 2000のように作りたいです(真ん中に1個スペース)。 セルが多すぎて、一個ずつやるのは大変時間かかりますので、関数のやり方をご教示ください。 よろしくお願いします。