EXCELのデータベース関数について(DCOUNTA?)

このQ&Aのポイント
  • EXCELのデータベース関数についての要約文その1です。1年間に入社した人(雇用形態)毎に人数を求めたい場合や、今年度中に退職した方を含めて人数を計算したい場合にはDCOUNTA関数を使用することができます。また、全体をテーブルとして処理するためにデータベース関数を利用することも考えています。
  • EXCELのデータベース関数についての要約文その2です。DCOUNTA関数は(Database,フィールド,Criteria)という形式で使用しますが、Criteriaの条件を雇用形態と退職日を横に並べた値としたい場合には、退職日を空白にすることで条件を選んでいない状態を表すことができます。ただし、この方法では雇用形態のみ合致した人数をカウントしてしまう可能性があるため、別の方法を探す必要があります。
  • EXCELのデータベース関数についての要約文その3です。DCOUNTA関数をより正確に使用するための方法として、COUNTIFS関数を使用して条件を指定する方法があります。COUNTIFS関数を使用することで、雇用形態と退職日の両方の条件を満たすレコードの数を正確にカウントすることができます。この方法を使うことで、空白の退職日を選択した場合には条件を選んでいないとみなされるため、正確な人数を求めることができます。
回答を見る
  • ベストアンサー

EXCELのデータベース関数について(DCOUNTA?)

EXCELのデータベース関数について(DCOUNTA?) 住所録を作成していますが、ポイントは3点あります。 (1)1年間に入社した人(雇用形態)毎に人数を求めたいのです。 (2)今年度中に退職した方は残したままで、人数を計算したいのです。(退職日を入力) (3)今年度は人が増えるため、全体をテーブルとし、雇用者1人事をレコードとして処理していますが、そのためCOUNTIFSなどは用いず、簡単に計算するためデータベース関数を利用したいと考えています。 DCOUNAの関数は(Database,フィールド,Criteria)となりますが、Criteriaの条件を雇用形態と退職日を横に並べた値としたいが、退職日を空白の人を人数としたい為、空白とすると条件を選んでいないとして雇用形態のみ合致した人数をカウントしてしまうようです。 良い方法あればご教示ください。

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

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

本当に何も記載されていない空白セルを検索するなら、、Criteriaの条件で空白セルを検索する条件のセルに「="="」と条件を入力してください。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 画像が小さいので詳細が判らないのですが、 あくまで方法だけ判ってもらえればよいかな!って思い投稿しました。 一例ですが、↓の画像で説明します。 結果のK3セルに =IF(COUNTBLANK(K1:K2)=2,"",IF(K2="",SUMPRODUCT((E2:E1000=K1)*(H2:H1000=K2)),SUMPRODUCT((E2:E1000=K1)*(H2:H1000>=K2)))) という数式を入れています。 これで「退社日」が空白でも「雇用形態」の欄だけ入力するとそのデータ数が表示されます。 尚、画像の空白欄の「退社日」にシリアル値で ○○以降の日付を入力すると、 表示されている雇用形態の入力した日付以降に退社した人のデータ数が表示されます。 尚、数式は元データの1000行目まで対応できるようにしています。 以上、このような方法もあります。m(__)m

fukuoka1
質問者

お礼

お返事ありがとうございました。 いろんなやり方があるんですね。 勉強になります。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

図が小さくてよく認識出来ませんでしたので、例を示します。 Criteria で、フィールド行を入れずに、フィールド行の次のセルをTRUE, FALSEで判定する数式を書けばよいです。  A列     B列 フィールド1 フィールド2  2010/9/27 D列[クライテリア] クライテリアの範囲の一行目を空白にして、二行目に TRUE, FALSE の返る数式を入れます。 (空白) =(A2)="" [数式] A1:B50--データベース, B1 フィールド名, D1:D2 クライテリア =DCOUNTA(A1:B50,B1,D1:D2) A列が日付シリアル値が入っているとすれば、2行目の数式はこうなります。 >(1)1年間に入社した人(雇用形態)毎に人数を求めたいのです。 = YEAR(A2)=2010 >(2)今年度中に退職した方は残したままで、人数を計算したいのです。(退職日を入力) = OR((YEAR(A2)=2010),A2="")

fukuoka1
質問者

お礼

ありがとうございます。 いろんなやり方があるんですね。 参考にさせてください。

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

計算のため列を追加するのはどうでしょうか、式作成後非表示設定 式中の項目名は表中のセル位置とに置き換えて下さい。 (1)1年間に入社した人(雇用形態)毎に人数を求めたいのです。 ・入社年度列を追加する (年度の基準が4月1日の場合) 入社年度=YEAR(入社日)+IF(A2>=DATE(YEAR(入社日),4,1),1,0) (2)今年度中に退職した方は残したままで、人数を計算したいのです。(退職日を入力) ・集計対象列を増やす 集計対象=if(退職日="",1,if(or(退職日="",退職日>=今年度始),1,0)) (3)今年度は人が増えるため、全体をテーブルとし、雇用者1人事をレコードとして処理していますが、そのためCOUNTIFSなどは用いず、 簡単に計算するためデータベース関数を利用したいと考えています。 退職日を空白の人を人数としたい為、空白とすると条件を選んでいないとして雇用形態のみ合致した人数をカウントしてしまうようです。 ・空白列に何かを入れる(見づらければ条件付き書式で色分けする)  雇用形態は"未定” 退職日は 0

fukuoka1
質問者

補足

お返事いただき、ありがとうございます。 説明不足で失礼しましたが、今年度からのため、今年に関しては全員が対象となるため入社年度列が不要と考えています。 また必要になれば、条件に「年度=22」と追加いたします。 ただし退職時の身分は、わかるように身分欄は退職しても"未定"とかに変更せず現在の人数が知りたいのです。 DCOUNTAでは空白を条件とすると、条件は無条件となるようで困っています。 「空白を条件とすることができる方法」又は「代替の関数等の案」があればご教示ください。

関連するQ&A

  • DCOUNTA関数のCriteriaに「数値が入っているセル」という条件を指定したい。

    DCOUNTA関数の第3引数(Criteria)に指定する条件に、「数値が入っているセル」という条件を指定する方法を教えてください。 なお、検索対象となるセルには、「空白(何も入力なし)」か「数値」しか入りません。

  • エクセルのデータベース関数について

     DSUMなどのデータベース関数の条件(クライテリア)の指定において,複数の条件を指定できるのでしょうか?  例えば,布について,フィールドに色(黒,白,赤,黄,緑),値段,大きさ(大,中,小)があるデータベースの中から,色が黒と白,大きさが大のものの値段の和を求める場合,セルに   A B 1 色 大きさ 2 黒 大 3 白  というような,クライテリアの指定ができるのでしょうか?このとおり指定しても,上手く計算されてこないのですが?Aで色を黒と白と複数指定できないのでしょうか?

  • データベース関数のCriteria(クライテリア)について

    いつもお世話になってます。 データベース関数のCriteria(クライテリア)で条件を数式で指定する場合なんですが。。 (1)なぜ検索範囲の先頭レコードでないとダメなのか? (2)数式がand・or関数しか使えないのか? ちょっと疑問に思ったので・・ 詳しい方お願いします!

  • エクセル関数でデーターベースから値を抽出するには・・・

     エクセル関数のDGETはデータベースから1つの値を抽出しますよね。でも条件を満たす値が複数ある時には「#NUM」が返されて抽出出来ない。条件を満たす値を複数返すような関数は無いのでしょうか ?   住所、氏名、年齢、職業、のデータの中で「"東京*"」にすむ人の名前を抽出しなさい。「"東京*"」に住んでいる人がいない場合は空白セルを返すようにする、と言った内容です。   どなたか教えて下さい。

  • エクセル 関数 複数条件

    お世話になります。 エクセル2013ver.を使用しております。 複数条件の関数(COUNTIF DCOUNTA)等について教えてください。 ■行いたい事■ 添付画像左側リストより、 (1)みかん&たまごを購入した人の買い物リストを抽出したい (2)みかん&たまごを購入した人数をカウントしたい 以上、2つの事を行いたいのですがうまくできません。 良い方法があればご教示お願い致します。 近しい事をされているのも見受けられましたが、 行き詰まってしまいました。

  • excelの関数

    今勤務表を作成しているのですが画像の中の基準労働日数の値を関数で作成していた所  条件としては閏年・31日がない月・休祭日出勤=C待機等々細かく条件を指定していましたら  以下のように長くなってしまいましたもう少し短くしたいのですが  マクロ等組んだことがなくどうすればいいのか分かるかた教えてください =IF(TEXT(J4,"mm")="02", IF(TEXT(B36,"mm")=TEXT(J4,"mm"), IF(C8=1, NETWORKDAYS(J4,B36) -COUNTIFS(Y8:Y36,"*日") -COUNTIFS(C8:C36,">=2",C8:C36,"<=6",Y8:Y36,"*C待機*") -COUNTIFS(C8:C36,">=2",C8:C36,"<=6",Y8:Y36,"*年末年始*"), IF(C8=7, NETWORKDAYS(J4,B36) -COUNTIFS(Y8:Y36,"*日") -COUNTIFS(C8:C36,">=2",C8:C36,"<=6",Y8:Y36,"*C待機*") -COUNTIFS(C8:C36,">=2",C8:C36,"<=6",Y8:Y36,"*年末年始*"), NETWORKDAYS(J4,B36) -COUNTIFS(Y8:Y36,"*日") -COUNTIFS(C8:C36,">=2",C8:C36,"<=6",Y8:Y36,"*C待機*") -COUNTIFS(C8:C36,">=2",C8:C36,"<=6",Y8:Y36,"*年末年始*") ) ), IF(C8=1, NETWORKDAYS(J4,B35) -COUNTIFS(Y8:Y35,"*日") -COUNTIFS(C8:C35,">=2",C8:C35,"<=6",Y8:Y35,"*C待機*") -COUNTIFS(C8:C35,">=2",C8:C35,"<=6",Y8:Y35,"*年末年始*"), IF(C8=7, NETWORKDAYS(J4,B36) -COUNTIFS(Y8:Y35,"*日") -COUNTIFS(C8:C35,">=2",C8:C35,"<=6",Y8:Y35,"*C待機*") -COUNTIFS(C8:C35,">=2",C8:C35,"<=6",Y8:Y35,"*年末年始*"), NETWORKDAYS(J4,B36) -COUNTIFS(Y8:Y35,"*日") -COUNTIFS(C8:C35,">=2",C8:C35,"<=6",Y8:Y35,"*C待機*") -COUNTIFS(C8:C35,">=2",C8:C35,"<=6",Y8:Y35,"*年末年始*") ) ) ),IF(TEXT(B38,"mm")=TEXT(J4,"mm"), IF(C8=1, NETWORKDAYS(J4,B38) -COUNTIFS(Y8:Y38,"*日") -COUNTIFS(C8:C38,">=2",C8:C38,"<=6",Y8:Y38,"*C待機*") -COUNTIFS(C8:C38,">=2",C8:C38,"<=6",Y8:Y38,"*年末年始*"), IF(C8=7, NETWORKDAYS(J4,B38) -COUNTIFS(Y8:Y38,"*日") -COUNTIFS(C8:C38,">=2",C8:C38,"<=6",Y8:Y38,"*C待機*") -COUNTIFS(C8:C38,">=2",C8:C38,"<=6",Y8:Y38,"*年末年始*"), NETWORKDAYS(J4,B38) -COUNTIFS(Y8:Y38,"*日") -COUNTIFS(C8:C38,">=2",C8:C38,"<=6",Y8:Y38,"*C待機*") -COUNTIFS(C8:C38,">=2",C8:C38,"<=6",Y8:Y38,"*年末年始*") ) ), IF(C8=1, NETWORKDAYS(J4,B37) -COUNTIFS(Y8:Y37,"*日") -COUNTIFS(C8:C37,">=2",C8:C37,"<=6",Y8:Y37,"*C待機*") -COUNTIFS(C8:C37,">=2",C8:C37,"<=6",Y8:Y37,"*年末年始*"), IF(C8=7, NETWORKDAYS(J4,B37) -COUNTIFS(Y8:Y37,"*日") -COUNTIFS(C8:C37,">=2",C8:C37,"<=6",Y8:Y37,"*C待機*") -COUNTIFS(C8:C37,">=2",C8:C37,"<=6",Y8:Y37,"*年末年始*"), NETWORKDAYS(J4,B37) -COUNTIFS(Y8:Y37,"*日") -COUNTIFS(C8:C37,">=2",C8:C37,"<=6",Y8:Y37,"*C待機*") -COUNTIFS(C8:C37,">=2",C8:C37,"<=6",Y8:Y37,"*年末年始*") ) ) ) )

  • 数を数える関数式を教えてください。

    具体的には、 雇用形態と所属部署などのリストから、 「正社員 かつ ○○部」の人の人数を関数で出したいのですが、 countifとandをつかえばどうにかなるかなと思い自分でやってみましたがうまくいきません。 こういう場合どういう関数式になるでしょうか? よろしくお願いします。

  • エクセル「SUMPRODUCT関数」で困っています

    SUMPRODUCT関数 初心者です。 項目数15くらい、約10000件のデータベースから、3項目の条件でSUMPRODUCT関数を使って20種別×15種別の表を作成してみようと思いました。 …が、結果すべて0になってしまいます。 SUMPRODUCT関数の使い方(考え方)はあっていると思います。(小さい表で使ってみると正しく計算されるため) たしかに、SUMPRODUCT関数は沢山計算しているので、大きな?表を集計するのに向かないのでしょうか? そのあたりがわかりません。 ただ、ピボットテーブルで同じものを作成すると、さくさく完成します。 こんな漠然とした質問でお答えいだけるのか不安ですが、どなたかお詳しい方よろしくお願いします。

  • EXCEL2003で『再計算』表示が再計算された後も残ってしまって困っ

    EXCEL2003で『再計算』表示が再計算された後も残ってしまって困ってます。オプションの計算設定は自動にしていますが、ファイルオープン時に必ず再計算され、再計算が100%終わった後でも、『再計算』表示が消えません。ただシート4枚にわたり関数が無数にあり(DCOUNTA,DAVERAGE等 別のシートにデータベースがありDCOUNTA,DAVERAGE等で計算させています。)その4枚の内1枚でも削除すれば『再計算』は消えて、再計算後の『再計算』表示は消えます。関数の量が多すぎて自動計算が終了していないように感じていますが、こんな事はあるのでしょうか?どなたか教えていただけますか?

  • エクセルの関数を教えてください。

    エクセルの関数を教えてください。 この従業員はこの月はいたのかいないのか、入社したのか退職したのかを計算したいんです。 A1 従業員名 B1 入社日 C1 退職日 D1 4月 ~ ~ O1 12月 D2以下から、A2の従業員は4月入社、5月在籍、6月退職 と表示できるようにしたいのですが、どのような関数を入れればよいでしょうか?

専門家に質問してみよう