アプリ版:「スタンプのみでお礼する」機能のリリースについて

マイクロソフトアクセス初心者です。
エクセルでいうVLOOKUPに相当する関数を使いたいのですがどのようにするといいでしょうか?データベースは以下のようなものです。
人数  金額   台数1 台数2
2人 123,456円  1台  0台
3人 234,567円  1台  1台
4人 345.678円  1台  1台
5人 456,789円  2台  1台 
2人 343,343円  0台  1台
のようなものがテーブルが10万件ほど並びます。
このデータベースを、金額を10,000円ごとに、「人数」ごとの件数、それにかかる「台数」の件数を分析した表を作成したいのです。たとえば、10,000~20,000円の間で、2人が何件、2人にかかる台数1が何件、台数2が何件というような感じです。
ここで、「1万円ごとに」件数を割り出すというのがネックになってます。そこで、金額をあらかじめ123,456円を20,000円というように置き換えればやりやすいと考えました。エクセルならば、ここでVLOOKUP(金額,○○,○,false)で近似値で置き換えができます。この近似値の処理をアクセスで行いたいのですが、可能でしょうか?
もしかして、1つずつクエリで抽出をしなきゃいけないということはないと思いまして。ちなみにマクロはさっぱりわかりません。質問の内容がわかりにくいかと思いますがよろしくお願いします。

A 回答 (5件)

数字をある刻みごとのグループに分けるには


Partition関数を使います

詳しくはヘルプで確認してください

Partition 関数

ある数値が、区切られた複数の範囲のうち、どの範囲に含まれるかを示すバリアント型 (内部処理形式 String の Variant) の文字列を返します。
    • good
    • 0
この回答へのお礼

partition関数について、少し調べてみました。基礎知識が不足していてわからないところもありますが、理解できれば求めている結果が得られそうな気がします。ありがとうございました。

お礼日時:2007/08/01 22:01

以下のSQLをクエリのSQLビューに貼り付けたて実行すれば、可能では?


テーブル名は"TBL"です。

SELECT Int(TBL.金額/10000)*10000 AS 集計単位, TBL.人数, Count(*) AS 件数, Sum(TBL.台数1) AS 台数1, Sum(TBL.台数2) AS 台数2
FROM TBL
GROUP BY Int(金額/10000)*10000, TBL.人数;

<TBLデータ>
人数  金額  台数1  台数2
2  \123,456  1  0
3  \234,567  1  1
4  \345,678  1  1
5  \456,789  2  1
2  \343,343  0  1
2  \123,999  1  0


<集計結果>
集計単位  人数  件数  台数1  台数2
120000  2  2  2  0
230000  3  1  1  1
340000  2  1  0  1
340000  4  1  1  1
450000  5  1  2  1
    • good
    • 0
この回答へのお礼

ありがとうございました。早速、明日試してみます。

お礼日時:2007/08/01 21:58

(1)アクセスにもピボットテーブルがあり、金額区分(1万円毎)を指定できたような気がする。

調べてみてください。
(2)エクセルでなら処理できると思うなら、アクセスからエクセルノデータを写すのは簡単です。2007で無いと、6万行の制約に引っかかるが。
(3)ソートして簡単なプログラムを組めば簡単なのだが。何万を越えると、件数合計、計数合計を書き出し、それら各変数をご破算して、次ぎの万を越えるまで、件数、計数を各変数に足しこめばよい。
(4)集計クエリでもできたような気がする。
    • good
    • 0
この回答へのお礼

ピボットテーブルは試してみましたが10000ごとの設定がわかりませんでした。もう少し調べてみます。ありがとうございました。

お礼日時:2007/08/01 21:56

>123,456円を20,000円というように置き換えればやりやすいと考えました


これは、123,456円を120,000円の意味で書かれてますよね?
テーブル名をテーブル2でテストしました。
クエリ
SELECT テーブル2.人数, テーブル2.金額, Int(([金額])/10000)*10000 AS 調整額, テーブル2.台数1, テーブル2.台数2
FROM テーブル2;
金額を10000円で割った整数値に10000円かけています。
人数金額調整額台数1台数2
2\123,45612000010
3\234,56723000011
4\345,67834000011
5\456,78945000021
2\343,34334000001
    • good
    • 0
この回答へのお礼

なるほど、10000で割った整数に10000を掛けるという方法がありますね。ありがとうございます。

お礼日時:2007/08/01 21:53

SQLほとんど未経験者だが,


下に似たような質問が出ている。(PostareSQL向け)

英語が読めなくてもSQL文が読めれば想像できると思う
http://www.nabble.com/group-by-range-of-values-t …
    • good
    • 0
この回答へのお礼

ありがとうございます。初心者でSQLの知識ないので、難しそうですが試してみます。

お礼日時:2007/08/01 21:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!