| 
    
     |  | また、宜しくお願い致します。 色々調べてみて、データベース関数だとちょっと使い勝手が悪いので、下記のような関数を作ってみました。
 
 Sheet2!J2=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*
 (Sheet1!L202:L65536=Sheet2!C2)*(Sheet1!P202:P65536>0)*
 (-5%<Sheet1!M202:M65536)*(Sheet1!M202:M65536<=-4%)*
 (-10%<Sheet1!N202:N65536)*(Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 で、Ctrl + Shift + Enter で確定させてカウントや合計を出しています。
 が、
 
 Sheet2!K2=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536<0)*(-5%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-4%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 Sheet2!L2=SUM(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536>0)*(-5%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-4%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 Sheet2!M2=SUM(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536<0)*(-5%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-4%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 Sheet2!N2=MIN(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536<0)*(-5%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-4%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 といった按配で、Sheet1!P列が正か負かによって他にも集計しなければならない項目があります。
 更に各検索項目の検索条件毎(パーセンテージの刻みとか)に集計したいので、
 
 Sheet2!J3=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536>0)*(-4%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-3%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 Sheet2!J4=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536>0)*(-3%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-2%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!P202:P65536))
 
 Sheet2!J10=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536>0)*(-4%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-3%)*(-9%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-8%),Sheet1!P202:P65536))
 
 Sheet2!J11=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!P202:P65536>0)*(-3%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-2%)*(-9%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-8%),Sheet1!P202:P65536))
 
 という風になる上、集計したいデータもP列だけでなく、Q列もR列も…といった感じで
 
 Sheet2!Y2=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!Q202:Q65536>0)*(-5%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-4%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!Q202:Q65536))
 
 Sheet2!Z2=COUNT(IF((Sheet1!J202:J65536=Sheet2!A2)*
 (Sheet1!K202:K65536=Sheet2!B2)*(Sheet1!L202:L65536=Sheet2!C2)*
 (Sheet1!Q202:Q65536<0)*(-5%<Sheet1!M202:M65536)*
 (Sheet1!M202:M65536<=-4%)*(-10%<Sheet1!N202:N65536)*
 (Sheet1!N202:N65536<=-9%),Sheet1!Q202:Q65536))
 
 なんてのも必要になってきます。
 
 Sheet1!J202:J65536=Sheet2!A2
 Sheet1!K202:K65536=Sheet2!B2
 Sheet1!L202:L65536=Sheet2!C2
 
 この3つの検索条件に関しては、集計用のシートに予めA〜C列には検索条件を入れておき、シートを分けて集計したいと考えています。
 
 Sheet1のデータはどんどん入れ替えて、様々なデータの集計を取りたいと思います。
 
 
 一番簡単なのは、この式を全部コピペしたりフィルしたりして予めシートに書いておき、集計用のシートを作成しておく事だと思います。
 といっても、1つの集計シートだけで全部の組合せで1600*40くらいあるので、手作業だと面倒というのもありますし、何より重くてお話しになりません(フリーズ汗
 
 というワケで、計算式を予め書いておくのは諦めて、マクロを書いて計算をやらせてしまおうと思います。
 もしフリーズさえしなければ、手作業でやっちゃう方が簡単なんですけれど…。
 
 
 で、問題はまず、この関数のコードが分かりません。
 後、全ての組合せをコードで書くのもあまり頭が良く無い気がするんですけど、何か良い方法はあるんでしょうか?
 
 宜しくお願いします。
 
 |  |