[[20150710010308]] 『並べ替え』(aki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『並べ替え』(aki)

こんばんわ。宜しくお願いします。

 以下のように、横に品種、その下に個数が入力されています。
多い順に品種、個数とも並び替えがしたいのです。
同じ個数の場合には、列の左側を優先したいです。
このような並び替えはできますでしょうか?

	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]
[1]	りんご	バナナ	もも	メロン	ナシ	みかん	すいか	合計
[2]	1	20	4	7	10	4	10	56
[3]								
[4]								
[5]	バナナ	ナシ	すいか	メロン	もも	みかん	りんご	合計
[6]	20	10	10	7	4	4	1	56

 < 使用 Excel:Excel2007、使用 OS:Windows7 >           2015/07/10 1:07 aki

 コピペして、A5:G6の範囲を、列方向、キーが2行目、降順で並び替えをすればできますので
 要件としては、これを関数で ということなんですよね?

(β) 2015/07/10(金) 05:33


 素人の汗の結晶(?)です。ちゃんとしたものは早晩、専門家さんから提示があると思います。

 A3: =A2+COUNTIF($A2:A2,A2)/1000 

 A5: =INDEX($A1:$G1,MATCH(LARGE($A3:$G3,COLUMN(A1)),$A3:$G3,0))

 A6: =INDEX($A2:$G2,MATCH(LARGE($A3:$G3,COLUMN(A1)),$A3:$G3,0))

 A3:A5 を 右にG列までフィルコピー

(β) 2015/07/10(金) 06:48


 操作か関数ということでしょうが、マクロなら。

 Sub Macro()

    Range("A1:H2").Copy Range("A5")
    Range("A5:G6").Sort Key1:=Range("A6"), Order1:=xlDescending, Orientation:=xlLeftToRight, Header:=xlNo

 End Sub

(β) 2015/07/10(金) 08:22


 関数で行う場合。
 (すまんが合計部分はコピーするなりSUM関数を使うなりしてくれ)

 A5セルに
 =INDEX($A1:$G1,MATCH(LARGE($A2:$G2-COLUMN($A1:$G1)/100,COLUMN(A1)),$A2:$G2-COLUMN($A1:$G1)/100,0))
 と入力してShiftキーとCtrlキーを押しながらEnterキーで確定(確定後、式が{}でかこまれればOK)
 A6セルに
 =LARGE($A2:$G2,COLUMN(A1))
 と入力してA5、A6セルをG列までコピーしてみてくれ。
(ねむねむ) 2015/07/10(金) 10:24

 サンプルでは別の行で並べ替えてるけど、元データは残しておきたいってこと?

 まあどっちにしても「並べ替え」でできますよね。
 既出だけど流れ的に見過ごされる恐れがあるので、そこ改めて強調しておきます。

データ → 並べ替え(列単位)でできる!

 行方向の並べ替え
http://www4.synapse.ne.jp/yone/excel2010/excel2010_sort4.html
(笑) 2015/07/10(金) 12:00

βさま ねむねむさま 笑さま
 ありがとうございました。

データ → 並べ替え(列単位)

 できるんですね。
また勉強させて頂きました。
ありがとうございます。

また、

 数式をゆっくりと解析させて頂きます。

ご回答をくださいった皆様

 ありがとうございました。

 < 使用 Excel:Excel2007、使用 OS:Windows7 >           2015/07/10 10:22 aki
(aki) 2015/07/10(金) 22:23

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.