7つの数字を分解する方法とは?

このQ&Aのポイント
  • エクセルワークシートのA列、B列、C列、D列にそれぞれ1行当たり7つの数字が入っているのが最大5行あります。エクセル機能の「区切り位置」を使わずに1行を7列に分割する方法を知りたいです。
  • イメージ図を参考に、マクロが入ったワークシートに貼り付けてボタンを押下すると分割された結果がE列以降に表示される方法を教えてください。
  • 注意事項として、1つのセルに入っている7つの数字の間には「半角スペース」が入っています。使用するエクセルは2010です。
回答を見る
  • ベストアンサー

1つのセルに入っている7つの数字を分解する方法。

どなかたご存じでしたらご回答よろしくお願いします。 【質問】  エクセルワークシートのA列、B列、C列、D列にそれぞれ1行当たり 7つの数字が  入っているのが最大5行あります。これをエクセル機能である「区切り位置」を使わずに  1行を7列に分割する(実際には4列×7=28列)方法が知りたいです。  下記にイメージ図を書きます。  理想は、マクロが入ったワークシートに貼り付けてからボタンを押下すると分割された  結果がE列以降にでてくるのが良いです。 ★質問のイメージ図・・・分割前       A             B             C             D  01 06 08 13 16 22 25 07 18 19 23 28 30 33 02 06 10 23 28 34 37 04 10 16 18 19 23 37 03 12 23 24 25 29 36 03 09 15 17 18 34 36 11 18 26 27 33 35 36 13 16 21 26 27 32 37 04 07 19 20 28 33 36 01 06 17 25 26 30 35 02 06 12 13 17 19 32 04 09 11 15 16 31 34 01 10 14 20 24 29 35 05 12 14 22 24 28 37 03 15 21 29 30 32 36  05 11 17 19 24 27 32 01 06 07 08 29 33 35 08 15 24 26 28 31 34 ★質問のイメージ図・・・分割後(E列~AF列まで入る) E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD・・・・・ 01 06 08 13 16 22 25 07 18 19 23 28 30 33 02 06 10 23 28 34 37 04 10 16・・・ 03 12 23 24 25 29 36 03 09 15 17 18 34 36 11 18 26 27 33 35 36 13 16 21・・・ 04 07 19 20 28 33 36 01 06 17 25 26 30 35 02 06 12 13 17 19 32 04 09 11・・・ 01 10 14 20 24 29 35 05 12 14 22 24 28 37 03 15 21 29 30 32 36 05 11 17 19 24 27 32 01 06 07 08 29 33 35 08 15 24 26 28 31 34 【注意事項】  ・1つのセルに入っている7つの数字の間には、「半角スペース」が入っています。  ・分割後の結果はE列以降に出力します。  ・「最大5行」と書きましたが、1行しか無い場合もありまし、5行以上ある場合もあります。  ・使用するエクセルは2010です。 以上、よろしくお願いします。 

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

参考に Sub Test()   Dim c As Range, i As Long, myAyy As Variant   For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))     For i = 0 To 3       Cells(c.Row, 7 * i + 5).Resize(, 7) = Split(c.Offset(, i).Value, " ")     Next   Next End Sub

moguo4649
質問者

お礼

早速のご回答ありがとうございます。 教えて頂いたマクロを実行したところ 得たい結果になりました。 ありがとうございます。

その他の回答 (1)

noname#204879
noname#204879
回答No.2

マクロ音痴なので、関数で。参考になれば幸甚。 E1: =TRIM(MID(OFFSET($A1,0,(COLUMN(A1)-1)/7),MOD(COLUMN(A1)-1,7)*3+1,3))

moguo4649
質問者

お礼

ご回答ありがとうございます。 マクロを使わない場合はこうやって「TRIM関数」を使うんですね。 これなら手軽にできます。 教えて頂き、ありがとうございます。

関連するQ&A

  • 塗りつぶしたセルの対称となるセルの数字を抜き出す2

    いつもお世話になっております。 もう1つよろしければ回答をお願いいたします。 【質問】 添付図の様にA1~G30までに1~37迄の数字が重複有りで入っています。 それを、I2~O2の数字で検索します。 検索できたらそのセルを赤く塗り潰します。 赤く塗りつぶしたセルがD列以外の場合、 対称(A列の対称はG列、B列の対称はF列、C列の対象はE列)となる数字を I5から下に並べる方法が知りたいです。 【注意事項】 ・使用するエクセルは2016です。 ・I2~O2に入る数字は1~37迄で重複無しです。 ・添付図は途中の4行目迄のサンプルとなっております。 以上、よろしくお願いいたします。

  • Excelのセルにおける変則的なコピー

    VBAを使わずにこんなことができますか? いい方法があれば教えて下さい。 言葉でしか伝えられませんが、これでやりたいことがわかっていただけますでしょうか? 1.[Sheet1]のA列~E列に数値が入力されているとします。 2.これを[Sheet2]に1行を2行に分割しながら貼り付けたいんです。 ・[Sheet1]A1~C1を[Sheet2]A1~C1へ、[Sheet1]D1~E1を[Sheet2]B2~C2へ。 ・[Sheet1]A2~C2を[Sheet2]A3~C3へ、[Sheet1]D2~E2を[Sheet2]D4~C4へ。 ・[Sheet1]A3~C3を[Sheet2]A5~C5へ、[Sheet1]D3~E3を[Sheet2]B6~C6へ。 ・ ・ ・ イメージはこんな感じです。 実際にはA列からDC列まで100行程あるものを、4行ずつに分割したいんです。 2列に分ける方法の応用でできると思っているのですが、いかがでしょうか? どうかよろしくお願いします。

  • 塗りつぶしたセルの対称となるセルの数字を抜き出す

    いつもお世話になっております。 よろしければ回答をお願いいたします。 【質問】 添付図の様にA1~E20までに1~31迄の数字が重複有りで入っています。 それを、G2~L2の数字で検索します。 検索できたらそのセルを赤く塗り潰します。 赤く塗りつぶしたセルがC列以外の場合、 対称(A列の対称はE列、B列の対称はD列)となる数字を G5から下に並べる方法が知りたいです。 【注意事項】 ・使用するエクセルは2016です。 ・G2~L2に入る数字は1~31迄で重複無しです。 以上、よろしくお願いいたします。

  • 同一数字の重複を”1”としてカウントする方法。

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。  これをF列で「同一数字はいくつ重複しても”1”として数字の数をカウントする方法」  が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート   A B C D E F   3 3 1 7  8 4 ←"3"は同一数字で2個重複するが"1個"とみなして、3178の4となる。   7 7 7 7  7 1 ←"7"は同一数字で5個重複するが "1個"とみなして、7の1となる。   4 4 4 4  2 2 ←"4"は同一数字で4個重複するが "1個"とみなして、42の2となる。   6 6 6 3  1 3 ←"6"は同一数字で3個重複するが "1個"とみなして、631の2となる。   1 1 8 8  8 2 ←"1"は同一数字で2個重複、"8"は同一数字で3個重複するがそれぞれ               "1個"とみなして、18の2となる。   3 3 2 2  5 3 ←"3"と"2"は同一数字で2個ずつ重複するがそれぞれ"1個”とみなして                325の3となる。   3 4 5 6  7 5 ← 同一数字の重複は存在しないため、34567の5となる。 ●注意事項   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • 同じ数字を見つける方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルシートA列~F列に数字が入っています。  A列の数字がG列~L列迄の数字のいずれかと同じ値の場合、  M列~R列に一致した値を出力する。これをF列まで繰り返し行う方法が知りたいです。  ◎エクセルシート A B C  D E  F  G  H  I  J  K  L  M  N O P Q R    4 19 20  27 28 14  5  15 18 20  23 28  20 28     5  9 15 19 30  9  5  9  18 22  24 25  5  9  <= A列~F列で9が重複     5  7 17  25 27 18  5  14 18 23  29 31  5  18  2  3 5 14 24  9   5  9 16  22  29 30  5  9   6 12 21 24 28 15  4  5  11 20  26 29    6  8 9 21 26  4   4  8  13 19  26 27  4  8  26 ●注意事項   ・”数字”とは1~31迄の数字の事です。   ・A列~F列の数字は重複する場合があります。   ・A列~F列の数字がG列~L列に存在しない場合があります。    その場合のM列~R列は空白です。   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • 重複している数字を表示する方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。  「A列~E列で重複している数字があればF列又はG列にその数字を出力する」  方法が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート   A B C D E F G   3 3 1 7 8 3   ←3が2個重複しているので、F列に3が入る。   7 7 7 7 7 7   ←7が5個重複しているので、F列に7が入る。   4 4 4 4 2 4   ←4が4個重複しているので、F列に4が入る。   6 6 6 3 1 6   ←6が3個重複しているので、F列に6が入る。   1 1 8 8 8 1 8 ←1が2個、8が3個重複しているので、F列に1、G列に8が入る。   3 3 2 2 5 3 2 ←3が2個、2が2個重複していうので、F列に3、G列に2が入る。    3 4 5 6 7     ←重複数字は無いため、F列、G列には何も入らない。  ●注意事項   ・使用するエクセルは2010です。 以上、よろしくお願いします。 投稿日時 - 2013-05-04 11:02:06

  • エクセルのセルはいくつまで使える?

    2つのエクセルシートを1つにしたいのですが、横長のもので列がかなりあります。その2つのシートを1つのシートにしたいのですが、貼り付けてもエラーが出てしまいます。エクセルで使える行や列には最大値があるのでしょうか?

  • 複数セルから特定の文字を検索して、その対象セルを抽出したい

    エクセルで関数、VBAを使用して、下記のようなDATA抽出を行ないたいのですが、どなたか、ご指導いただけないでしょうか。 たとえば、2種のシートが、各々、 <シート1>   列A   列B 行1 A1 ABCD-123 行2 B23 EFGH-456 行3 C456 あいうえお <シート2> 列A 列B 列C  列D  列E 行1 A1 A2 A3 行2 B23 C5 A4 行3 A5 B2 C456 ・・・・・・・となっている場合、 <シート2> の列D  行1 へ "A1"と入力(記載)がある場合、列Eに   ”ABCD-123”と表示(抽出)を行ないたい。 セルには、文字、数字、記号が入ります。 よろしくお願い致します。

  • エクセルのセル参照、一つずつ参照セルをずらしていきたい

    エクセルのセル参照の方法について教えてください。 2つのシートがあって、 ひとつのシートにはC4,D5,E6…というように行と列がひとつずつ増えていくところに値が入力されています。 このシートから、C4,D5,E6…のセルの値を取り出して 別のシートのA1,A2,A3…に縦に並んで表示させたいのですが、どのようにセルを参照させればC4,D5,E6…という 行と列がひとつずつ増えていくセルを参照できるでしょうか? よろしくお願いいたします。

  • セルの数字を昇順に並び替えて重複削除する方法

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】  添付図のとおり、2列×20行の数字が【入力値2列】欄に入っています。  この数字を昇順に並び替えて重複数字を削除したものを【重複チェック済2列】に  出力します。また、【入力値2列】欄の数字を【入力値1列】に縦1列にして数字 を昇順に並び替えて重複数字を削除したものを【重複チェック済1列】に出力しま す。具体的には下記(1)~(4)の手順です。質問は2列×20行での場合ですが、  2列×200行の場合でも上記のことができるようにしたいです。    *********************************** (1)入力値2列(A列・B列)に2つの値をセットします。 (2)入力値2列(A列・B列)の値を重複チェック済2列(D列・E列)に並べて昇順に並び替えて重複数字を削除します。 (3)入力値2列(A列・B列)の値を入力値1列(G列)に1列にセットします。 (4)入力値1列(G列)の値を重複チェック済1列(I列)に並べて昇順に並び替えて重複数字を削除します。 以上、よろしくお願いします。

専門家に質問してみよう