- ベストアンサー
エクセルでのデータの並び替え
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つずつのグループに並び替えたいのです。 エクセルの扱いがよくわからないので困っています。 うまい方法を教えてください。よろしくお願いします。
- みんなの回答 (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)&"","")
その他の回答 (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
補足
ご親切にご返答ありがとうございました。 コピーペイストを何度しても同じ単語が出ます。 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 となります。 テストして調べていただいたのに不思議ですね。
「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)&"","")
補足
たびたびすみません。 =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)&"") も同じ単語ばかりになります。 よくわかりません。よろしくお願いします。
お示しのように、必ず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)
B1=INDEX($A:$A,(COLUMN()-2)*3+INT((ROW()-1)/3)*6+MOD(ROW()-1,3)+1,1) としてB:C列にコピーして貼り付け
補足
コピーして貼り付けたのですが何も出ません。 関数をちょっと調べたのですが、種類が多くてなかなかわかりません。 それからA列に空白はありません。B列、 C列に3行ごとに空白をおきたいのです。不手際ですみませんでした。 よろしくお願いします。
お礼
やっとうまくいきました。 夜ふとんの中でなぜうまくいかないのか考えていた時に、ひょっとしてWebの関数をそのままコピーペイストするからだめなのか、一度B1に写して、それをコピーペイストしてみたらと思ったのです。 予想通りうまくいきました。 何度もごていねいに即座にご回答いただきありがとうございました。 私の不手際で何度もお手数を煩わせまして申し訳ありませんでした。
補足
全部、 =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) 順番に変わっています。 どうして違いが起きるのか私にはわかりません。 ふしぎですね。