| 
    
     |  | ▼こまつ さん: >Asc("I")-Asc("D")=5ですよね!!
 >なら、[I8:I6000]と思います。
 >なぜAscで表現したのですか?
 2つの列のオフセット量を表すのに
 I列の列番号がすぐ分からなかったので、そうしたまでです。
 
 >r.Offset(,5)でもよかったのではないでしょうか?
 それでかまいません。
 
 >確実性の問題でしょうか?
 強いて言えば、可読性の問題ですかね?
 r.Offset(,5)
 より、
 r.Offset(, asc("I") - asc("D"))
 のほうが 「D」列から「I」列までのオフセット量を表す式
 であることが直観的に分かりやすいと思いませんか?
 
 >Asc("I")=9ですよね?
 いえ ?asc("I") は
 73
 です。
 
 ------------
 閑話休題
 クロス集計するにはいろいろな方法があるわけです。
 先ほど Excel2007の COUNTIFs 関数を紹介しましたが、
 CountIf だって2つの条件でCOUNTすることができるんですよ
 
 どこか空いている列(たとえば J列とします)に
 [J8] =D8&I8
 として、データ最終行までフィルしておいてください。
 ↓こうなります。
 D           I    J
 7 日付          種別
 8 3月2日         A    39874A
 9 3月2日         B    39874B
 10 3月2日         C    39874C
 11 3月2日         A    39874A
 :  :          :
 
 で、COUNTIF関数で集計表を埋めるには、
 [D2:K6]を選択して、
 [D2]セルに 数式 =COUNTIF($J$8:$J$6000,D$1&$C2) をタイプして
 Ctrl+[Enter] で確定すればいいわけです。
 
 クロス集計には状況に応じていろいろな方法がありうるということです。
 自分にあった方法をお選びください。
 
 |  |