目次
グループ毎にランクを振るの関数とは?
こんにちは。伊川(@naonaoke)です。
ExcelとACCESSでは、ランクを振る数式は、まったく異なります。
ExcelとACCESSでは、カウント系の関数を使います。
ACCESS編
問題提起
(株)IKAWAの阿久 世子男(アク セスオ)は上司から下記の依頼を受けました。
ACCESSでグループ毎にランクを振ってほしい。
クエリでどのようなSQL文を記載したらいいだろうか?
解決策
・クエリでDoCount関数を使ってクエリを作成する
DoCount関数
ACCESSではExcelでのCOUNTIF関数のような役割があります。
個人的見解では、DoCount関数を利用すると、ACCESSの作動が重くなるような気がします。
しかし、今回は、DoCountでランクを振りたいと思います。
DoCount関数 作成手順その1 データベース確認
分類をグループとして、売上順にランクを振ります。
DoCount関数 作成手順その2 クエリを確認
最初で ”*” を入力しているのは、単純にカウントするだけなので、任意にフィールドを指定しています。
任意のフィールドなので、”*”としています
順位: Nz(DCount("*","MT_売上","[分類]='" & [MT_売上].[分類] & "' And [売上] > " & Nz([MT_売上].[売上],0)),0)+1
上のSQL文がランクを付けるコードです。
Excel編
問題提起
・(株)IKAWAの柄久 瀬瑠子(エク セルコ)は上司に下記の依頼を受けました。
グループ毎の売上順にランクを付けて欲しい。
どのような関数を使えばいいだろうか?
解決策
・COUNTFIS関数で解決する。
COUNTIFS関数
COUNTIFS関数は上の記事で説明しています。
しかし、今回は、トリッキーな方法かも知れません。
COUNTIFS関数 作成手順その1 データベース確認
.
やることは、ACCESSと同じです。
COUNTIFS関数 作成手順その2 数式確認
=COUNTIFS($A$2:$A$29,A2,$B$2:$B$29,">"&B2)+1
ここがポイント
ExcelとACCESSも、カウント系の関数でグループ毎のランクを付けることができました。知っている関数を応用することで、色々な工夫ができます。。
まとめ
今回は、Excel、ACCESSのグループ毎のランク付けを紹介しました。
ACCESSとExeclの連携ではありませんが、各ツールごとに憶えておくことも重要です。
今回のサンプルファイルは、No83です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。