• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2000で計算結果から並べ替えたい)

Excel2000で数値を並べ替える方法とは?

このQ&Aのポイント
  • Excel2000で数値を並べ替える方法を知りたい方へ、マクロやVBAを使用せずにデータをソートする方法をご紹介します。
  • A列が名称、B列が数値A、C列が数値B、D列がコストの表データを指定したコスト合計内で、数値Aと数値Bが8点で最大値になる組み合わせを別の列に並べ替えて表示する方法を教えてください。
  • 参考になるHPも見つけることができず、マクロやVBAを使用しない方法でExcel2000で計算結果からデータを並べ替える方法を教えていただきたいです。

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

  • ベストアンサー
回答No.2

計算速度を改善とちょっと修正 Sheet2!AD1セル =IF(AC1=0,0,IF(AC1<=INDEX(Sheet1!$B$3:$C$3,$AF$1),MMULT((P1:AB1>0)*1,INDEX(Sheet1!$B$6:$C$18,,$AF$1)),0)) Sheet2!AF1セル =MATCH(AE1,{"コストA","コストB"},0) 以下 Sheet1に移り G6セル =INDEX(Sheet2!$A$1:$M$8191,Sheet2!$AF$3,ROW(A1)) H6セル =SUM(G6,H5) 下へオートフィル J6セル 1 下へ連番 K6セル =IF($H$18<$J6,"",MATCH($J6,$H$6:$H$18,0)) L6セル =IF(K6="","",INDEX(A$6:A$18,$K6)) N6セル =IF(K6="","",INDEX(D$6:D$18,K6)) 下へオートフィル 添付図参照 後は上記の応用かな

RX-78NT-1ALEX
質問者

お礼

おお!目標としていたデータができている! すばらしいです^^ 点数が多くなると総当り表が膨大なサイズになることと、採用されなかったデータを並び替えて下に表示することに関してはここまでできたら工夫のしようがあるように思います。 とりあえず、教えていただいた内容どおりにしてみて、次の手を考えたいと思います。 ありがとうございましたm(__)m

その他の回答 (1)

回答No.1

元のシート名をSheet1 新たにシートを挿入してSheet2とする ツール アドイン [レ]分析ツール 総当たりです。(コストパフォーマンスを求めてそれなりのものを出すのはできますが最適値ではないので) Sheet2シートにおいて N1セルに =TEXT(DEC2BIN(INT(ROW(N1)/256)),REPT(0,5))&TEXT(DEC2BIN(MOD(ROW(N1),256)),REPT(0,8)) A1セルに =MID($N1,COLUMN(A1),1)*1 右へ M1セルまでオートフィル O1セルに =SUM(A1:M1) A1:O1セルを選択して8191セルまで下へオートフィル (2の13乗-1) A:O列は不変なのでコピー → そのまま値の貼り付け (分析ツールのチェックを外してもOK) P1セル =IF($O1<=8,A1*INDEX(Sheet1!$D$6:$D$18,COLUMN(A1)),0) AB1セルまで右へオートフィル &下へオートフィル(フィルハンドルダブルクリック) AC1セル =SUM(P1:AB1) 下へオートフィル(フィルハンドルダブルクリック) AE1セル コストA (またはコストB) AF1セル =MATCH(AE1,{"コストA","コストB"}) AD1セル =IF(AC1<=INDEX(Sheet1!$B$3:$C$3,$AF$1),MMULT((P1:AB1>0)*1,INDEX(Sheet1!$B$6:$C$18,,$AF$1)),0) 下へオートフィル(フィルハンドルダブルクリック) AE3セル =LARGE($AD$1:$AD$8191,1) AE4セル =LARGE($AD$1:$AD$8191,2) AE5セル =LARGE($AD$1:$AD$8191,3) AF3セル =MATCH(AE3,$AD$1:$AD$8191,0) 下へオートフィル AF3セルの値の行に最適な組み合わせがある。 とりあえずここまで

RX-78NT-1ALEX
質問者

お礼

なるほど! 総当り表を作って、そこから呼び出して表示ですか! まったく思いつきませんでしたw 総点数が25点くらいあるのですが処理は大丈夫でしょうか? 6700万列くらい必要な計算になる気がします・・・ でも、総当りで必要なデータが引き出せることがわかっただけでもとてもいいイマジネーションを受けました。 ありがとうございます。