• ベストアンサー

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

tom04の回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.3です。 補足を読ませていただくと・・・ E列とA~C列に表示する行に規則性がないみたいですね! 仮に関数で可能だとしても、A~C列の各行に一つずつ数式を入れてやる必要があります。 それでは大変ですので、今回もマクロでやってみました。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub セルに振り分け() 'この行から Dim i As Long Dim k As Long Dim n As Long Dim myG As Variant Dim myArray As Variant myG = Array(6, 12, 18, 24, 30, 36, 43, 49, 55, 61) For k = 0 To UBound(myG) Select Case myG(k) Case 6 i = 3 Case 12 i = 6 Case 18 i = 21 Case 24 i = 24 Case 30 i = 27 Case 36 i = 30 Case 43 i = 9 Case 49 i = 12 Case 55 i = 15 Case Else i = 18 End Select Range(Cells(i, 1), Cells(i, 3)).ClearContents myArray = Split(Cells(myG(k), 5), " ") For n = 0 To UBound(myArray) Cells(i, n + 1) = myArray(n) Next n Next k End Sub 'この行まで ※ 関数でないので、データ変更があるたびにマクロを実行する必要があります。 ※ E列に1セルずつデータを入力するのであれば 前回のようにデータ変更のたびに表示することは可能です。 お望みの方法でなかったらごめんなさいね。m(_ _)m

gekikaraou
質問者

お礼

ご回答ありがとうございます。 まさに求めたい結果だと感じます。 データを貼り付けし直して、マクロ実行のみで求める結果にたどり着けそうです。 関数の他に、マクロって言うんですね。 こんな方法があるとは知りませんでしたが、使いこなすのは至難の技のような気がします。 なにはともあれ、再度のご回答ありがとうございます!

関連する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個スペース)。 セルが多すぎて、一個ずつやるのは大変時間かかりますので、関数のやり方をご教示ください。 よろしくお願いします。