[[20120809133256]] 『RANK関数のマクロ』(まる) ページの最後に飛ぶ

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

 

『RANK関数のマクロ』(まる)

RANK関数のマクロはどうやって作るのでしょうか。教えてください。

[現状]
・表中のA列で降順に並べ替えをしたい。
・A列にはエラーの場合は空欄になる数式が入っている。
・降順に並べ替えると、空欄→降順の順になるが、降順→空欄の順にしたい。
・B列を作業列とし、RANK関数を入れ昇順で並べ替えることにより、空欄が最後になった。

[教えてほしいこと]
・作業列なしに、RANK関数をマクロ化したい。
(複数人が使用する表のため、誰でもワンクリックで並べ替えができるように、なおかつ、表が大きいため作業列をなくしたい)

よろしくお願いします。
Excel2007、Windows 7


 VBAはよくわからないんだけど。

 RANK関数ということはA列は数値?

 A列が正数で0なしとして。

 @範囲指定 → 範囲をコピー → 値貼り付け
 A範囲指定 → 「置換」→ 検索:(入力なし) 置換:0 で置換。
 B範囲を降順並び替え
 C範囲指定 → 「置換」で 0を空白に置換。

 これをマクロ記録してみては?

 (GobGob)

GobGobさん ありがとうございます。

A列には数式が入っていまして、値貼り付けは避けたいと思います。

やはり作業列を作るしかないのでしょうか。

(まる)


 A列にはどんな数式が入っているんですか?
 数式はそのままで並び替えるなら、その数式で参照している値も一緒に並び替えないとソートできないと思いますが、
 一度ソートしたら元に戻せなくなってもいいのかな?
(Jera)

Jeraさん

A列には以下の数式が入っています。
=IF(OR(J2="",K2="",P2=""),"",K2-J2*P2)

ソート後、元に戻せないのは困ります。。

(まる)


 複数人の人が使うということですし、メンテナンスの問題もあるので
 その数式を =IF(OR(J2="",K2="",P2=""),0,K2-J2*P2) に変更して、0は条件付き書式で隠す。
 それで普通に降順ソートすれば作業列無しで望み通りの並びになるはずですが(負の値が無ければ)、
 それじゃダメなんですかね?
 ただ、元に戻せないのは困るという事なら、元のデータは一体何を基準に並べられているのかご説明が必要です。
(Jera)


Jeraさん

すみません。負の値がありまして、0だとダメなのです。
元に戻せないと困るというのは、A列だけではなく、いろいろな列で並べ替えをすることがあるためです。
文字列の列や数式の列が多数です。
それぞれ昇順や降順で並べ替え、マクロの記録でマクロを作成し、ボタンに登録しました。
基準となるものは、普通の番号(1,2,3....の連番)です。

作業中に、A列の他にも負の値がある列で並べ替えをすることになりました。
やはり作業列を設けてRANK関数を入れることにします。
いろいろとありがとうございました。

(まる)


 うーん、ならば元に戻すのはその連番を基準にソートするとして。

 ならばゼロではなく「負の値はあるけどさすがにこんな値はあり得ない」
 というような数値にするのもいいかもしれません。
 強引ですが、例えば =IF(OR(J2="",K2="",P2=""),-9^9,K2-J2*P2) として、
 条件付き書式で-9^9の値を隠してソートするとか。
(Jera)

コメント返信:

[ 一覧(最新更新順) ]


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