- ベストアンサー
データベース関数の「条件」ですが見出しを入れないようにできないでしょう
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>対案として他の関数などではなくデータベース関数で行いたい、というのが前提です。 良く見たらデータベース関数以外の関数はダメということですね。 その場合は、基本的に検索条件範囲に項目名が含まれていないとDSUM関数などのデータベース関数は使用できないので、DSUM関数では「表示できない」というのが回答になります。 ちなみに、提示した配列数式も表示する(集計する)データ数が多くなると動きが重くなるので、ピボットテーブル(たとえばGETPIVOTDATA関数)を使用するなど、集計方法を工夫する必要があると思います。
その他の回答 (4)
- mt2008
- ベストアンサー率52% (885/1701)
E18には、地区=渋谷 and 担当=山田 の個数合計、 E19には、地区=渋谷 and 担当=野木 の個数合計、 E20には、地区=新宿 and 月=1月 の個数合計、 を、表示させたいと言う認識でよろしいですか? DSUMでやるなら、データベース関数の検索条件は列見出しと検索条件セルがセットになったセル範囲ですので、別シートでDSUMした結果を表示した方が良いでしょう。 別シートを使用したくない方法として、Excel2007以降ならSUMIFSで出来るのですが、古いExcelも存在すると言う事ですのでSUMPRODUCTで無理やりやってみました。 E18に↓を入れて下にコピーして見てください。 =SUMPRODUCT(((A$2:A$15=A18)+(A18=""))*((B$2:B$15=B18)+(B18=""))*((C$2:C$15=C18)+(C18=""))*((D$2:D$15=D18)+(D18=""))*E$2:E$15)
- MackyNo1
- ベストアンサー率53% (1521/2850)
例示のレイアウトならE18セルに以下の式を入力して、Ctrl+Shift+Enterで確定して配列数式にして下方向にオートフィルします。 =IF(COUNTA(A18:D18)=0,"",SUM(IF(A18="",$A$2:$A$15=$A$2:$A$15,$A$2:$A$15=A18)*IF(B18="",$B$2:$B$15=$B$2:$B$15,$B$2:$B$15=B18)*IF(C18="",$C$2:$C$15=$C$2:$C$15,$C$2:$C$15=C18)*IF(D18="",$D$2:$D$15=$D$2:$D$15,$D$2:$D$15=D18)*$E$2:$E$15))
お礼
ありがとうございます。配列でSUMPRODCTなどを使用する方法はわかるのですが、データが膨大になるのでデータベース関数で行いたく質問しました。
- layy
- ベストアンサー率23% (292/1222)
シート見出しでは無いですよね?。17行めのことですか?。データ用と統計用と分けて考えた方が良いかと思います。それかデータの下に統計でなく統計の下にデータとすると出来るかもしれません。また考えます。
お礼
ありがとうございます。
- shinkami
- ベストアンサー率43% (179/411)
お礼
ありがとうございます。 なるほど別シートから引っ張る方法がありましたね。