[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『RANK関数のマクロ』(まる)
RANK関数のマクロはどうやって作るのでしょうか。教えてください。
[現状]
・表中のA列で降順に並べ替えをしたい。
・A列にはエラーの場合は空欄になる数式が入っている。
・降順に並べ替えると、空欄→降順の順になるが、降順→空欄の順にしたい。
・B列を作業列とし、RANK関数を入れ昇順で並べ替えることにより、空欄が最後になった。
[教えてほしいこと]
・作業列なしに、RANK関数をマクロ化したい。
(複数人が使用する表のため、誰でもワンクリックで並べ替えができるように、なおかつ、表が大きいため作業列をなくしたい)
よろしくお願いします。
Excel2007、Windows 7
VBAはよくわからないんだけど。
RANK関数ということはA列は数値?
A列が正数で0なしとして。
@範囲指定 → 範囲をコピー → 値貼り付け A範囲指定 → 「置換」→ 検索:(入力なし) 置換:0 で置換。 B範囲を降順並び替え C範囲指定 → 「置換」で 0を空白に置換。
これをマクロ記録してみては?
(GobGob)
A列には数式が入っていまして、値貼り付けは避けたいと思います。
やはり作業列を作るしかないのでしょうか。
(まる)
A列にはどんな数式が入っているんですか? 数式はそのままで並び替えるなら、その数式で参照している値も一緒に並び替えないとソートできないと思いますが、 一度ソートしたら元に戻せなくなってもいいのかな? (Jera)
A列には以下の数式が入っています。
=IF(OR(J2="",K2="",P2=""),"",K2-J2*P2)
ソート後、元に戻せないのは困ります。。
(まる)
複数人の人が使うということですし、メンテナンスの問題もあるので その数式を =IF(OR(J2="",K2="",P2=""),0,K2-J2*P2) に変更して、0は条件付き書式で隠す。 それで普通に降順ソートすれば作業列無しで望み通りの並びになるはずですが(負の値が無ければ)、 それじゃダメなんですかね? ただ、元に戻せないのは困るという事なら、元のデータは一体何を基準に並べられているのかご説明が必要です。 (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.