• ベストアンサー

行の数値をまとめて並べ替える方法

例えば 1 A列の1行から50行に「スカート」「シャツ」「靴」「靴下」「ダウン」「コート」などの品目を入力 2 B列からF列にそれぞれの品目の最高値から最安値をランダムに入力 3 すべての価格をまとめて「降順」あるいは「昇順」に並べ替える  B列からF列を50行まとめて簡単に並べ替えたいです。 以上の作業を簡単にできる方法はありますか 「データ」「並べ替え」「オプション」「行選択」しかないでしょうか 使用しているのは2003になります。 よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

またまたお邪魔します。 なかなかご希望通りにならないようですが・・・ もう一度画像をアップしておきます。 Sheet1は前回と全く同じように作ってみました。 すべてのセルの数式を載せておきますので、この画面から各セルにコピー&ペーストしてみてください。 尚、Sheet2にはやはり社名があった方が数式が短くなりますので、画像のように1行目に敢えて社名を入れています。 Sheet2のB2・C2セルを結合して「A社」と入力 Sheet2のD2・E2セルを結合して「B社」と入力 Sheet1の作業列は前回同様です。 Sheet1の作業列D2セル =IF(COUNTIF($B$2:B2,B2)=1,ROW(),"") E2セル =A2&B2 という数式を入れ、D2・E2セルを範囲指定しE2セルのフィルハンドルでオートフィルで下へずぃ~~~!っとコピーしておきます。 Sheet2のA3セル =IF(COUNT(Sheet1!D:D)<ROW(A1),"",INDEX(Sheet1!B:B,SMALL(Sheet1!D:D,ROW(A1)))) B3セル → 配列数式になってしまいますので、前回同様セルに貼り付け後、数式バー内で一度クリック → Shift+Ctrlキーを押しながらEnterキーで確定! =IF(OR($A3="",COUNTIF(Sheet1!$E:$E,B$1&$A3)=0),"",MAX(IF(Sheet1!$E$1:$E$1000=B$1&$A3,Sheet1!$C$1:$C$1000))) C3セル(これも配列数式) =IF(OR($A3="",COUNTIF(Sheet1!$E:$E,B$1&$A3)=0),"",MIN(IF(Sheet1!$E$1:$E$1000=B$1&$A3,Sheet1!$C$1:$C$1000))) B3・C3セルを範囲指定 → C3セルのフィルハンドルで右へ2列まとめてオートフィルでコピー(E3セルまでコピー) 最後にA3~E3セルを範囲指定 → E3セルのフィルハンドルで下へコピー! 尚、数式が入っているセルは並び替えしてもデータが変化しませんので、画像のように別列に並び替えをしています(黄色い列) (別Sheetに「形式を選択して貼り付け」 → 「値」にチェック・「行列を入れ替える」にチェック で並び替えは可能になりますが、今回はSheet2でやってみました。) F3セル(配列数式ではありません) =IF(COUNT($B3:$E3)<COLUMN(A1),"",LARGE($B3:$E3,COLUMN(A1))) としてI3セルまでオートフィルでコピー! ついでに・・・ J3セルは =IF(A3="","",MAX(F3:I3)) K3セルは =IF(A3="","",MIN(F3:I3)) としてF3~K3セルを反指定 → K3セルのフィルハンドルで下へコピーすると画像のような感じになります。 以上、長々と書いてしまいましたが、何か参考になるものがあったでしょうか?m(__)m

atokun
質問者

お礼

ありがとうございます。 そうです!! これが欲しかったのです。 すごく、嬉しいです。 3月からの運用ですので、 tom4様の回答を使わせていただき、 頑張ります。 面倒くさくて分かりにくい質問に付き合っていただき、 本当にありがとうございました。助かりました。 また、何かありましたら、力をお貸しください。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (8)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.9

回答8のシート2、A列~E列がもともとの状態で、この4列を並べ替えしたら最高値最安値わかるのでは?、との質問だったのかと。 これは BとDを比較するだけで最高値 CとEを比較するだけで最安値 と出せるのでは?。 4つから求めても良い。 仮に並べ替えしておいて、G4が空欄のI4に表示されたら、並べ替えしてF列I列表示、G列H列非表示でもよい。 4つでどれが1番高い安いかは他3つと比較で求まる。 なので tom4様既存回答2でどうなの?、 と この大小比較や最大最小の関数を確認したら、あとは自己解決できると思います。

atokun
質問者

お礼

めんどうで分かりにくい質問に お付き合い頂き、ありがとうございます。 layy様の質問への質問のお陰で 質問を整理することが出来ました。 こちらで質問してよかったです。 実際の運用が3月からなので、 こちらを参考にしながら、業務を行います。 本当に助かりました。 ありがとうございました。 また、何かありましたら力をお借りします。

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.7

tom04様のシート2回答が 現在のイメージということで解釈していますが・・・。 補足をお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.2・3・4です。 何度もごめんなさい。 layyさんのお礼欄に >必要なのは2箇所のデータを合体した場合の >「最高値」と「最安値」です。 >2箇所のデータをコピペして並べ替え >「最高値」「最安値」をそのままデータとして残したいのです とありましたのでまたまたお邪魔します。 今までの投稿は無視してください。大きく外していると思います。 今までの方法は単純にB~F列に数値を昇順・降順に並び替えるだけの方法です。 たぶん↓のようなことだろうと思います。 Sheet1にA社・B社のデータが羅列してあるとします(並び替えする必要はありません) その社別最高値・最安値をSheet2に表示するようにしてみました。 とりあえずSheet1の100行目まで対応できる数式にしています。 尚、こちらで勝手に画像のように列の配置を変えています(オートフィルでコピーをやりやすくするためです) Sheet1に作業用の列を2列設けています。 作業列1のD2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(),"") 作業列2のE2セルに =A2&B2 という数式を入れ、D2・E2セルを範囲指定しE2セルのフィルハンドルで下へオートフィルでずぃ~~~!っとコピーします。 (作業列1はSheet2に商品の重複なしに表示するためのものですので、Sheet2の商品が決まっているのであれば必要ありません。) そして、Sheet2のA3セルに =IF(COUNT(Sheet1!D:D)<ROW(A1),"",INDEX(Sheet1!B:B,SMALL(Sheet1!D:D,ROW(A1)))) B3セルに =IF(OR($A3="",COUNTIF(Sheet1!$E$2:$E$100,B$2&$A3)=0),"",MAX(IF(Sheet1!$E$2:$E$100=B$2&$A3,Sheet1!$C$2:$C$100))) これは配列数式になってしまいますので、この画面からSheet2のB3セルにコピー&ペーストした後に数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このB3セルを隣のCD3セルまでオートフィルでコピー! 次にD3セルに =IF(OR($A3="",COUNTIF(Sheet1!$E$2:$E$100,D$2&$A3)=0),"",MIN(IF(Sheet1!$E$2:$E$100=D$2&$A3,Sheet1!$C$2:$C$100))) (これも配列数式ですので、前述の操作方法と同じです。) これを隣のE3セルまでオートフィルでコピー! 最後にA3~E3セルを範囲指定し、E3セルのフィルハンドルで下へオートフィルでコピーすると 画像のような感じになります。 以上、長々と書きましたが参考になれば幸いです。 今回も的外れならごめんなさいね。m(__)m

atokun
質問者

補足

表まで作成し、画像までつけていただきありがとうございます。 補足をつける度に混乱をさせてしまったようで、 こちらこそすみません。 tom4様とlayy様が最初に質問を読まれて 「こういうことか」と考えて回答いただいたイメージが 多分正解なのだと思います。 すごく分かりやすいので 画像を使わせていただいて 再度 説明します。 説明が下手で申し訳ありません。 sheet2の形が こちらが受け取るデータの形に近いものです。 違うところは まず「最高値」「最安値」の文字がありません。 A列1行目に「商品」と入ります。 A列には表の通り、品目が入ります。 (以下すべて行は3行目です) B列にはA社のスカート最高値「300」(B列には必ずA社の最高値) C列にはA社のスカート最安値「230」(C列には必ずA社の最安値・空欄の場合もあり) D列にはB社のスカート最高値「450」(D列には必ずB社の最高値) E列にはB社のスカート最安値「450」(E列には必ずB社の最安値・空欄の場合もあり) 以上の「」内の数値が入ります。 この4つの「」内の数値の中から 「最高値」「最安値」が欲しいのです。 上記の場合ですと B社の450とA社の230がデータとして必要になりますので B列450 c列450 D列300 E列230と並べ替えが出来ればと。 以下、シャツは250の数値がB、C列に 靴は320がB、C列、130がD、E列に 靴下は440がB、C列、360がD、E列 ダウンは500がB、C列、300がD列、250がE列 コートは540がB、C列、360がD、E列 と数値がくるように並べ替えたいのですが。 素人考えで tom4様が最初に回答いただいた方法で大丈夫なのかと思っていたのですが。 (SHEET1から2へはあまりにも高度すぎて何かすごいです) 説明すればするほど混乱させてしまい、 本当にすみません。 tom4様とlayy様が見捨てず回答して頂いてるのですごく嬉しいです。

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

A社の最高値をB列 A社の最安値をC列 B社の品目をD列 B社の最高値をE列 B社の最安値をF列 こんな感じ?。 後で元のどちらから来た、がわからなくなると困る、ならB~F列は並べ替えしないで、G列より右に作業列のが無難です。 2個から4個集まる要素で、最高値と最安値だけなら並べ替えしなくても関数かと。 ちなみに 並べ替えは、4人縦に並んで背の低い順にする、と同じ。1番目と2番目見てどっち、それと3番目見てどっち、としていく繰り返しプログラム。

atokun
質問者

補足

ご回答ありがとうございます A社の最高値をB列 A社の最安値をC列 B社の品目をD列 B社の最高値をE列 B社の最安値をF列 B社の品目は入りませんので A社の最高値をB列 A社の最安値をC列 B社の最高値をD列 B社の最安値をE列 となります。 A社とB社を合わせた4つの数値の中から 「最高値」「最安値」が必要なのですが、 「関数」というのは NO2、3の方が回答されているような 数式を入れればいいのでしょうか lavv様から質問されて 何を聞きたいのか、どうしたいのかが分かり 内容を整理していただき大変助かりました。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.2・3です! >(コピペで大丈夫ですよね) とありましたので・・・ No.2に書いているように、 数式データをコピー → B1セルをアクティブ → 右クリック → 「形式を選択して貼り付け」 → 「値」にチェックを入れOK にしてくださいね。 単にコピー&ペーストだけではエラーになります。 尚、余計なお世話かもしれませんが、B~F列すべてが数値で埋まっていればよいのですが、万一空白がある場合は =IF(COUNT($B1:$F1)<COLUMN(A1),"",LARGE($B1:$F1,COLUMN(A1))) といった数式にしてください。 お役に立てばよいのですが・・・m(__)m

atokun
質問者

補足

何度もありがとうございます。 コピペではだめだったのですね。 よく回答を読まず申し訳ありません。 数式データをコピー → B1セルをアクティブ → 右クリック → 「形式を選択して貼り付け」 → 「値」にチェックを入れOK ですね。 おっしゃるように空欄がありますので =IF(COUNT($B1:$F1)<COLUMN(A1),"",LARGE($B1:$F1,COLUMN(A1))) 簡単に考えていたのですが、結構高度テクニックのようで…。 実際の作業は3月からなのですが、それまでにマスターしようと思います。 丁寧に回答いただきありがとうございました。 こちらで質問してよかったです。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です! たびたびごめんなさい。 前回の降順の数式が間違っていました。 =LARGE($B1:$F1,COLUMN(A1)) に訂正してください。 何度も失礼しました。m(__)m

atokun
質問者

お礼

何度も投稿いただきありがとうございます 明日会社で =LARGE($B1:$F1,COLUMN(A1)) の数式をここからコピペして試してみます。 (コピペで大丈夫ですよね)   ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 外していたらごめんなさい。 列方向の数値だけを昇順・または降順に並べ替えたいということですよね? 一応そういうことだとして・・・ 一例です。 昇順の場合は 使っていない列を利用します。仮にG列以降を使っていないとして、 G1セルに =SMALL($B1:$F1,COLUMN(A1)) という数式を入れ、5列右までオートフィルでコピー! そのまま行方向(下)へコピー! そして範囲指定されたままの状態で → 右クリック → コピー → B1セルを選択 →  「形式を選択して貼り付け」 → 「値」にチュエックを入れOK 最後に先ほどのG列以降を削除して完了です。 尚、降順にしたい場合の数式は =LARGE($B11:$F11,COLUMN(C11)) として上記と同様の操作を行います。 的外れならごめんなさいね。m(__)m

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

左から右へ並べたい、ということか?。 形式を選択して貼り付け、で行列を反転する方法は考えてみたか。 B列からF列での 最高値をG列、最安値をJ列、というのはできる話。 2番目と3番目はG列にもJ列にもないもの、になるので別途判定でH列かI列、 こんなのでできそうか、検討。 必ずB~F列の4つに値を埋めるのか、 無い場合は同じ値で埋めておくことはあるのか、(それでも良いか)、 B列とC列が同じことはあるのか、 50行とは言わず増減することはあるのか、 等、補足で欲しい。 並べ替えのアルゴリズムを知っていれば、 4つしかないので簡単であり、VBAで関数化すれば特に問題ない。

atokun
質問者

お礼

早速回答いただきありがとうございます。 おっしゃる通り 「左から右へ並べたい」のです。 データが2箇所から来ます。 それぞれに「最高値」「最安値」がありますが、 「最安値」がない場合もあります。 その場合は空白になります。 また同じ値の場合もあります。 必要なのは2箇所のデータを合体した場合の 「最高値」と「最安値」です。 2箇所のデータをコピペして並べ替え 「最高値」「最安値」をそのままデータとして残したいのです。 行は固定になります。 以上で大丈夫でしょうか 形式を選択して貼り付け、で行列を反転する方法は簡単でしょうか 並べ替えのアルゴリズムを知っていれば、 4つしかないので簡単であり、VBAで関数化すれば特に問題ない の部分は全くわかりません。 ご回答の中の質問が的を射て(的を得て)いたので 感動しました。 おっしゃることが聞きたかったのです。 ど素人ですのでよろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの並べ替え「降順」について

    エクセルで「降順」に並べ替えをしたいのですが 上手くいきませんので教えてください。 F列のセルに、他のシートからVLOOKUPで数値を返しており、 F列を「並べ替え→降順」とすると、データがごっそり消えてしまいます。 昇順は問題なくできますが、降順にすると消えてしまいます。 他の列は問題なく降順にできます。 エクセルのバージョンは2016、OSはWindows11です。 よろしくお願いいたします。

  • エクセルVBAでセルの選択する方法

    B3セルからI200セルまで全部データが入力されている データを C3キー昇順と、F3キー昇順並べ替えしたいと考えています。 まず B3を選択して 次に I列の最終データを xldownを使用? 選択し 並べ替えすればいいのでは? と考えましたが、 その選択方法が分かりません。 よろしくお願いします。 直接I200を指定しないのは、 データによって 200行だったり 220行だったりすることがあるためです。

  • Excel初心者

    いくつか質問があります。 1、入力したデータを見やすいように、行の背景色を交互に変えたいと思います。 その後並べ替えを行っても交互のままにするにはどうすれば良いですか? 2、一番上の行に列ごとの数値の説明を書きたいのですが、降順昇順に並べ替えるときに一緒に並べ替えられないようにするにはどうすればよいでしょうか? わかりにくくすみませんがよろしくお願いします。

  • Excel昇順関数について

    データの昇順・降順方法として、メニューから「データ」→「並べ替え」とする方法がありますが、関数で同じことを実現できるものはあるのでしょうか?(例)A列に上から、「5、3、1、4、2」と並んでいるときに、(関数を入力した)B列上から「1、2、3、4、5」と表示する。

  • エクセル(マクロ含む)で、列の並べ替えはできますか?

    エクセル(マクロ含む)で、列の並べ替えはできますか? 例えば、 A1  B1  C1  D1  E1 名前  ナシ  カキ  蜜柑  モモ 価格  80  50  45  95 人気   3   4   2   1 個数  35  90  80  20 という表において、 価格、人気、個数、それぞれの指標をもとに、 B1~E1までの列を、降順・昇順に並べ替えたりしたいのですが、 そんなことは可能でしょうか? 例えば、人気の指標で、降順に並べ替えるとすると、 E列(モモ列)がB列に来て、以下同様に、 D列(蜜柑列)がC列に、 B列(ナシ列)がC列に、 C列(カキ列)がE列に来るような形で、並べ替えが行われます。 並べ替えが行われるのは、あくまで、「列」において、です。 よく見かける「『行』が移動するような並べ替え」とは異なるものですので、 誤解無きよう、宜しくお願い致します。 以上、どなたか、お分かりになるかた、色々とお教示下さい。 必ず、お返事とポイント付与を行います。

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについて教えてください。 エクセル2003です。 データ-並べ替え で複数の列に対してレベルごとに昇順で並べ替えをしますが、これをオートフィルタではできないのでしょうか? 例えば、A列にクラスデータがあり、それをオートフィルタで昇順にしておいて、それをレベル1として、B列に点数があり、それをオートフィルタで降順にして、それをレベル2とするような使い方です。

  • エクセルで行から数値を検索し、検索した数値のある列

    エクセルで行から数値を検索し、検索した数値のある列から左側の全ての合計を求めたいです。   A B C D E F 1  3 4 8 9 11 22 ←数字は隙間なくあるが、値がバラバラ(ただし昇順) 2 3  2~6行には色々な数字がまばらにある 4 5 6 1行目から検索したい数→10(別のセルで数式結果として出た数) ズレてるかもしれませんが・・・ E1セルに書かれている「11」の数字より前のD列、 A~D列の2行目~6行目の合計を各行ごとに別々に出していきたいです、どうしたらいいでしょうか また、表は行も列もデータを追加していく予定です

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  d    E    F    G 1   456789 2  789456  3  789789 4  456789 5    : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のEFG列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  d    E    F    G 2   456789 3  789456  4  789789 5  456789 6    : 7   : ------------------------------------- ボタンをおしたら一致した製造番号のEFG列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • EXCEL2007で並べ替えができません

    OSはXPで、EXCEL2007を使用しています。 ランダムに入力した名簿(A列:連番、B列:地区・班番号、C列:氏名、D列:住所、E列:電話、F列誕生月、G列:備考、H列:会員番号)を氏名の昇順で並べ替えをしようとしてもできません。 ちなみにデータタブでカーソルをC列に置き、昇順ボタンを押しても、飯田が1番に来、新井が25番目に来てしまう始末です。 また、並べ替えボタンで、並べ替えウイザードの最優先されるキーに氏名を選択し、並べ替えキーを値、順序を昇順にしてOKボタンを押しても結果は同じでした。 解決方法をご教示ください。

このQ&Aのポイント
  • PX049Aを使用していますが、無線LANが使えません。ブァッファロー製の無線LANはAOSSで設定されており、この機種にはWi-Fiダイレクトがないため、スマートフォンとは直接繋げることができません。
  • 以前はホームルーターを経由して繋いでいましたが、マンションに無料Wi-Fiが導入されたため、解約してしまいました。賃貸マンションのオーナーが提供してくれた無線LANはブァッファロー製ですが、プリンターが使えなくなりました。
  • 質問者はパソコンを持っていないため、スマートフォンと直接繋げる方法があれば知りたいと思っています。どなたか方法を教えていただけないでしょうか?
回答を見る

専門家に質問してみよう