• ベストアンサー

データベース関数の「条件」ですが見出しを入れないようにできないでしょう

データベース関数の「条件」ですが見出しを入れないようにできないでしょうか。 画像のように表にしておきたいので、見出し行をいちいちいれないようにしたいのです。 レコードは延々無数に増えていく、また古いエクセルのPCでも使用などするので、対案として他の関数などではなくデータベース関数で行いたい、というのが前提です。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

>対案として他の関数などではなくデータベース関数で行いたい、というのが前提です。 良く見たらデータベース関数以外の関数はダメということですね。 その場合は、基本的に検索条件範囲に項目名が含まれていないとDSUM関数などのデータベース関数は使用できないので、DSUM関数では「表示できない」というのが回答になります。 ちなみに、提示した配列数式も表示する(集計する)データ数が多くなると動きが重くなるので、ピボットテーブル(たとえばGETPIVOTDATA関数)を使用するなど、集計方法を工夫する必要があると思います。

その他の回答 (4)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

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)

bmaru
質問者

お礼

ありがとうございます。 なるほど別シートから引っ張る方法がありましたね。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

例示のレイアウトなら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))

bmaru
質問者

お礼

ありがとうございます。配列でSUMPRODCTなどを使用する方法はわかるのですが、データが膨大になるのでデータベース関数で行いたく質問しました。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

シート見出しでは無いですよね?。17行めのことですか?。データ用と統計用と分けて考えた方が良いかと思います。それかデータの下に統計でなく統計の下にデータとすると出来るかもしれません。また考えます。

bmaru
質問者

お礼

ありがとうございます。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.1

EXCELですね データベース関数は使用しません(存在しますか?) [ページ設定ダイアログ]から印刷タイトル行(列)を設定すると、 この行(列)が改ページの都度印刷されます。 [ページ設定ダイアログ]へは次のように入ります。 ・Excel2007  [ページレイアウト]→[印刷タイトル] ・Excel200  [ファイル]→[ページ設定]

bmaru
質問者

補足

ありがとうございます。印刷ではなく、 データベース関数をE19とE20にも入れたいのです。

関連するQ&A