• ベストアンサー

excel:表をある列の内容で並べ替え

excel2000以上 EXCELのシートがあります。 (B3からE102)まで4列、100行の表 B列(B3の頭から順にb102まで1番から100番まで順番に数字が入っています。) さてこの表を、別にあるG3からG102に入っている数値この数値は1から100のある順列になっており、その順列の順番に元の表の行を並べかえたい。どうすればいいのでしょうか。 例えば G列には上から 23,53,61,63,11,5,43、―――となっていたら 新しい表は1行目から元の表の23行目、53行目、61行目と並べる。 よろしく。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

例えば =INDEX(B$3:B$102,$G3) の式を H3:H102に コピーする

taktta
質問者

お礼

この回答で私のやりたいことができるとおもいました。ありがとう。 (私としては、B列のデータをフィルタを使って G列のデータの値 23,53,61,63,11,5,43で検索し、あるh列を使って、そこに 順番に1、2,3,4、5と入れていってあとでH列の値で表をソートすればできるなと思っていました。)

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1で範囲指定、ソートで良いような感じなんですが、問題点が良く伝わらない。 もし下記のようなことであれば G列の数字の行にその横並び行のデータをもって来たいなら (例データ)モデル的に簡略化してあります。G列が下記ではB列に当たります。 A1:B4に a 8 b 14 c 2 d 13 これを C1:D14に (C) (D) (行数=参考用、このデータは表にない)        ↓ 1 c 2 2 3 4 5 6 7 a 8 8 9 10 11 12 d 13 13 b 14 14 のように並べたいのなら C1には=IF(ISERROR(MATCH(ROW(),$B$1:$B$102,0)),"",INDEX($A$1:$B$102,MATCH(ROW(),$B$1:$B$102,0),2)) といれ、下に複写する。 D1に=IF(ISERROR(MATCH(ROW(),$B$1:$B$102,0)),"",INDEX($A$1:$B$102,MATCH(ROW(),$B$1:$B$102,0),2)) といれしたに複写すると上のように移ります。

taktta
質問者

お礼

ごていねいな回答ありがとうございました。 今度使ってみます。

  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.1

B3:E102の表とG3:G102のデータがあり G列で先の表を並び変えたいと言うことですか? ならば B3:G102の範囲を選択して データ→並び換えを実行して優先させるキーの先頭を 列Gにするだけです。

taktta
質問者

お礼

どうもありがとう。ちょっと意味する所が違います。

関連するQ&A