質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

353閲覧

特殊な順位付け(飛び飛びデータに順位を付ける)

masayone

総合スコア13

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/05/29 12:16

使用ソフト:EXCEL2016

1.RANK関数でが値データがあれば順位を付けれますが、
A 順位 式
1 13000   1  =RANK(A1,$A$1:$A$3,0)
2 11000   2 
3 10000 3

2.今回データが例えば A1に13000 A2に10000の値があるとして
A1 13000 A2 10000 間隔条件 1000など設定することで
ワークシート上は以下の順位表示させたい
A 順位 式
1 13000   1 
←RANK関数のデータ12000がない状態 
2 10000   3 

VBAでも実現が出来れば、方法は問いません。

何とか教示頂けんせんでしょうか。
宜しくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imihito

2018/05/29 13:56

10000のときは「3」でよろしいですか?(12000 -> 2, 11000 -> 3, 10000 -> 4 ではないですか?)
masayone

2018/05/29 18:02

申し訳ございません。ご指摘の通りです。12000 -> 2, 11000 -> 3, 10000 -> 4 です、宜しくお願いします。
guest

回答2

0

ベストアンサー

やりたいことを

指定された値が、最大の値から、間隔条件の単位で、どれだけ離れているか、

と考えてみると、以下の数式でいかがでしょうか?

= 1 + QUOTIENT( MAX($A$1:$A$3) - A1 , 1000 )
= 1 + QUOTIENT( 最大の値 - 指定された値 , 間隔条件 )

MAX($A$1:$A$3) - A1で最大の値との差を取得し、
QUOTIENT( , 1000)で1000で割った商を求めます。

そのままだと最大の値の時に0になるので、+1しておきます。

端数がある場合若干結果が変わってくるため、その場合は事前にQUOTIENTを適用するなどしてください。

投稿2018/05/29 22:11

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masayone

2018/05/30 00:38

imihitoさんありがとうございました。この関数事態一度も使用したことがありませんでした。 まして、数値を除算することすら考え付きませんでした。感謝!感謝! また、素早いご対応で悩む期間が少なく大変助かりました。 ベストアンサーとさせて頂きます。
guest

0

順位とは違うものですね。

B1に =QUOTIENT($A$1-A1,1000)+1
下方向にオートフィルでどうですか。

投稿2018/05/29 18:38

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masayone

2018/05/30 00:38

QUOTIENT関数は全く知りませんでした。(除算の商の小数値を切り捨てて整数のみを返す。) 大変勉強になりました。 ありがとうございます。 また、ご教示お願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問