• ベストアンサー

エクセルの並び替えについて教えてください!!!

困っています!エクセルについて教えてください!結合したセルA1:A3 に食材の名前、B1には色、B2には形、B3には味が入力されています。 これをA1に食材の名前、A2に食材の名前、A3に形、A4に味というように 並べ変えたいのですが、方法を教えてください! おおよそ500ほどの食材(行は1000以上)あり手動で作業するのが困難です。 1~3行目への作業を下の行に適用させるなど、どういうやり方でもいいのでお願いします!

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

  • ベストアンサー
noname#192382
noname#192382
回答No.1

次のマクロで下に示すような並べ替えができます。 for next の数を適宜変えて使用してください。 ' Macro1 Macro ' マクロ記録日 : 2007/10/23 ユーザー名 : ' Sub Macro1() Dim ia As Integer, ja As Integer, ka As Integer Dim ic As Integer, jc As Integer, kc As Integer Dim lc As Integer, imain As Integer Sheets("sheet1").Select For imain = 1 To 2 ia = (imain - 1) * 3 + 1 ja = ia + 1 ka = ia + 2 ic = (imain - 1) * 4 + 1 jc = ic + 1 kc = ic + 2 lc = ic + 3 Cells(ic, 3) = Cells(ia, 1) & Cells(ja, 1) & Cells(ka, 1) Cells(jc, 3) = Cells(ia, 2) Cells(kc, 3) = Cells(ja, 2) Cells(lc, 3) = Cells(ka, 2) Next imain ' End Sub あい 色 あいうえおか うえ 形 色 おか 味 形 き 色2 味 く 形2 きくけ け 味2 色2 こ 形2 さ 味2

nao21213
質問者

お礼

回答ありがとうございます。 おかげさまで解決できました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

#3の回答者です。 #関数でも可能だと思うのですが、 と書きましたので、補足しておきます。 適当なセルの1行目から、下にドラッグしてください。 A1を左端先頭とした場合、 =OFFSET($A$1,ROW(A1)-INT((ROW(A1)+2)/4)-1,(MOD(ROW(A1),4)<>1)*1)

nao21213
質問者

お礼

回答ありがとうございます。 おかげさまで解決できました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 関数でも可能だと思うのですが、1000行以上でも、数秒以内で終わるマクロの方が簡単で速いでしょうね。 '標準モジュールに貼り付けてください。 Sub TestMacro()   Dim rng As Range   Dim c As Range   Dim i As Long   Dim Ar()   Set rng = Range("A1", Range("B65536").End(xlUp))   ReDim Ar(rng.Count, 0)   For Each c In rng     If c.Value <> "" Then       Ar(i, 0) = c.Value       i = i + 1     End If   Next c   'Worksheets("Sheet2").Range("A1").Resize(i).Value = Ar()   Range("C1").Resize(i).Value = Ar()   Set rng = Nothing End Sub

nao21213
質問者

お礼

回答ありがとうございます。 おかげさまで解決できました。

回答No.2

  A列  B列 1 食材  色 2      形 3      味 4 食材2  色 5      形 6      味 となっているんですよね?初めての回答となりますので参考 程度かと思いますが・・・ (1)B列を選択して列の挿入をして以下のように連番をつける。 3行(1B~1D)登録し、3行選択状態でドロップすれば連番になるはずです。   A列 B列   C列 1 食材   1B   色 2      1C   形 3      1D   味 4 食材2  2B   色 5       2C   形 (2)A列を選択して列の挿入を行い、A1:A3を結合して 1Aと入力 して(1)と同様にドロップします。  A列 B列  C列  D列 1 1A  食材  1B   色 2         1C   形 3         1D   味 4 1B  食材2 2B    色 5          2C   形 (3)A、B列の結合を解除 (4)C列、D列を選択して A列、B列の下段に貼り付ける   A列 B列  C列  D列 1 1A  食材 3 4 2A  食材2 5 6 1B   色 7 1C   味 8 1D   形 9 2B   色 10 2C   味 11 2D   形    (5)A列、B列を選択し、A列で並び替えを行えばきれいになると思います。   A列 B列  C列   D列 1 1A  食材 2 1B   色 3 1C   味 4 1D   形 5 2A  食材2 6 2B   色 7 2C   味 8 2D   形

nao21213
質問者

お礼

回答ありがとうございます。 おかげさまで解決できました。

関連するQ&A