• ベストアンサー

エクセルでのデータの並び替え

A列に英単語のデータが1000 あります。 これを  A列   b列   c列 1    1      4 2    2      5 3    3      6 4    7     10 5    8     11 6    9      12 7     13     16 8     14     17 9     15     18 と2列に6つずつのグループに並び替えたいのです。 エクセルの扱いがよくわからないので困っています。 うまい方法を教えてください。よろしくお願いします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.5

[ANo.4この回答への補足]に対するコメント、 B1: =IF(MOD(ROW(A1),4),OFFSET($A$1,MOD(ROW(A1),4)-1+INT(ROW(A1)/4)*6+(COLUMN(A1)-1)*3,0)&"","") ですが、此れをセル C1、B2 にコピー&ペーストすると上式は次のように変化するけど、そうなっていますか? C1: =IF(MOD(ROW(B1),4),OFFSET($A$1,MOD(ROW(B1),4)-1+INT(ROW(B1)/4)*6+(COLUMN(B1)-1)*3,0)&"","") B2: =IF(MOD(ROW(A2),4),OFFSET($A$1,MOD(ROW(A2),4)-1+INT(ROW(A2)/4)*6+(COLUMN(A2)-1)*3,0)&"","")

ei60
質問者

お礼

やっとうまくいきました。 夜ふとんの中でなぜうまくいかないのか考えていた時に、ひょっとしてWebの関数をそのままコピーペイストするからだめなのか、一度B1に写して、それをコピーペイストしてみたらと思ったのです。 予想通りうまくいきました。 何度もごていねいに即座にご回答いただきありがとうございました。 私の不手際で何度もお手数を煩わせまして申し訳ありませんでした。

ei60
質問者

補足

全部、 =IF(MOD(ROW(A1),4),OFFSET($A$1,MOD(ROW(A1),4)-1+INT(ROW(A1)/4)*6+(COLUMN(A1)-1)*3,0)&"","") のままです。 なぜでしょうか? 試しに横で違う関数のコピー&ペーストすると =VLOOKUP(A1,$A$1:$E$36,2,TRUE) =VLOOKUP(A2,$A$1:$E$36,2,TRUE) =VLOOKUP(A3,$A$1:$E$36,2,TRUE) =VLOOKUP(A4,$A$1:$E$36,2,TRUE) 順番に変わっています。 どうして違いが起きるのか私にはわかりません。 ふしぎですね。

その他の回答 (4)

noname#204879
noname#204879
回答No.4

[ANo.3この回答への補足]に対するコメント、 》 …ですると、全部A1の同じ単語になってしまいます。 》 よくわかりません。 なぜそうなるのか私はまったく分かりません。 参考までに、私がテストした結果を示しておきます。        A          B         C 1  Audrey Hepburn    Audrey Hepburn    Deborah Kerr 2  Bridget Fonda    Bridget Fonda    Elizabeth Taylor 3  Cameron Diaz     Cameron Diaz     Fred MacMurray 4  Deborah Kerr 5  Elizabeth Taylor   George Segal     Julia Roberts 6  Fred MacMurray    Hugh Grant      Kim Basinger 7  George Segal     Isabella Rossellini Leonard DiCaprio 8  Hugh Grant 9  Isabella Rossellini Meg Ryan       Richard Gere 10 Julia Roberts    Nicolas Cage     Shirley MacLaine 11 Kim Basinger     Paul Newman     Tom Hanks 12 Leonard DiCaprio  13 Meg Ryan       Vincent D'Onofrio 14 Nicolas Cage     Walter Mattheau 15 Paul Newman 16 Richard Gere 17 Shirley MacLaine 18 Tom Hanks 19 Vincent D'Onofrio 20 Walter Mattheau

ei60
質問者

補足

ご親切にご返答ありがとうございました。 コピーペイストを何度しても同じ単語が出ます。        A          B         C 1  Audrey Hepburn    Audrey Hepburn    Deborah Kerr 2  Bridget Fonda    Bridget Fonda    Elizabeth Taylor 3  Cameron Diaz     Cameron Diaz     Fred MacMurray 4  Deborah Kerr 5  Elizabeth Taylor   George Segal     Julia Roberts このようにしたいのですが、すべて Audrey Hepburn となります。 テストして調べていただいたのに不思議ですね。

noname#204879
noname#204879
回答No.3

「A列に空白はありません。B列、 C列に3行ごとに空白をおきたい」のなら、 B1: =IF(MOD(ROW(A1),4),OFFSET($A$1,MOD(ROW(A1),4)-1+INT(ROW(A1)/4)*6+(COLUMN(A1)-1)*3,0)&"","")

ei60
質問者

補足

たびたびすみません。 =INDEX($A:$A,(COLUMN()-2)*3+INT((ROW()-1)/3)*6+MOD(ROW()-1,3)+1,1) としてB:C列にコピーして貼り付けがうまくいきました。 しかし、 B1: =IF(MOD(ROW(A1),4),OFFSET($A$1,MOD(ROW(A1),4)-1+INT(ROW(A1)/4)*6+(COLUMN(A1)-1)*3,0)&"","") ですると、全部A1の同じ単語になってしまいます。 : =IF($A1="","",OFFSET($A$1,INT(ROW(A1)/4)*8+MOD(ROW(A1),4)+(COLUMN(A1)-1)*4-1,0)&"") も同じ単語ばかりになります。 よくわかりません。よろしくお願いします。

noname#204879
noname#204879
回答No.2

お示しのように、必ず3行毎に空白セルがあるのなら、 B1: =IF($A1="","",OFFSET($A$1,INT(ROW(A1)/4)*8+MOD(ROW(A1),4)+(COLUMN(A1)-1)*4-1,0)&"")

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

B1=INDEX($A:$A,(COLUMN()-2)*3+INT((ROW()-1)/3)*6+MOD(ROW()-1,3)+1,1) としてB:C列にコピーして貼り付け

ei60
質問者

補足

コピーして貼り付けたのですが何も出ません。 関数をちょっと調べたのですが、種類が多くてなかなかわかりません。 それからA列に空白はありません。B列、 C列に3行ごとに空白をおきたいのです。不手際ですみませんでした。 よろしくお願いします。

関連するQ&A