• ベストアンサー

エクセルのDCOUNTA関数

エクセルのDCOUNTA関数でCriteriaに 例えばPと設定して Pと入力してあるセルのみ対象にしたいのですが 実際はPCと入力されてるセルも対象になってしまうようです。 どうすればPのみのセルを対象にすることができますか?

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

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

こんばんは。Wendy02 です。 返事が遅くなってすまみせん。 >A列から水を選んで >その中でC列が空白でない個数を >カウントしたいのですが >どのように設定すればいいでしょうか? =SUMPRODUCT(($A$2:$A$6="水")*($C$2:$C$6<>"")) このような考え方でよいはずです。 なお、*1 が入っていないのは、条件式は、演算をすると、それが数値に換わる性質があります。 False =0, True =1 です。

rakuten55
質問者

お礼

回答ありがとうございました。 返事が遅くなりすいません(^_^.) 回答の式、使わせてもらいました。 大変助かりました。 今後ともどうぞよろしくお願いします。(^^)

その他の回答 (8)

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

rakuten55 さん、こんにちは。 データベース関数が使えないのは残念ですが、それは良かったです。 こちらも、ほっとしています。 それから、長引かせてすみませんね。なんとか、データベース関数で完成したいという、こちらの気持ちもありましたもので。 それに、(LEFT(N2:N60,2)="16")*1 としたら、ワイルドカードも利きますね。 配列確定(Ctrl+Shift + Enter)をする方式と、Sumproduct を使う方法とでは、圧倒的に、Sumproduct の計算スピードが速いようです。便利な関数ですね。

rakuten55
質問者

補足

こんにちは。 すいませんが、現在作成中の表で もうひとつ設定したい関数があるので 教えていただきたいのですが・・・ ANo.7の表でA列から水を選んで その中でC列が空白でない個数を カウントしたいのですが どのように設定すればいいでしょうか?

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

こんにちは。 >漢字と数字が含まれると >どうも正しくカウントされないようです。 おっしゃるようなことは以下のようなことだと思いますが、こちらでは、1個しかヒットしません。4行目も該当するということでしょうか?再現性がありません。どのようなことをおっしゃっているのでしょうか?    A    B   C ------------------------- 1  A    B    C 2  水   16/1   ○ 3  12   16/2   ○ 4  水2   16/3   ○ 5  山   16/4   ○ 6  12水  16/5   ○ Criteria  L     M    N ---------------------- 1 A    A    B 2 水   <>水?   16* =DCOUNTA(A1:C6,C1,L1:N2) この式の答えは 「1」 です。 注:Criteria は、空白行を入れてはいけません。 あまり、これ以上、てこずるようでしたら、配列数式で検索したほうがよいかと思います。 サンプル: =SUMPRODUCT(($A$2:$A$6="水")*(LEFT($B$2:$B$6,2)="16")+($A$2:$A$6="水")*(LEFT($B$2:$B$6,2)="17")) 配列数式は、ワイルドカードが通常は出来ませんが、単独の文字検索には優れています。

rakuten55
質問者

お礼

こんにちは。 回答ありがとうございました。 結局DCOUNTAではうまくいかないので SUMPRODUCTで次の式で設定したらうまくいきました。 =SUMPRODUCT((J2:J60="水")*1,((LEFT(N2:N60,2)="16")*1))+SUMPRODUCT((J2:J60="水")*1,((LEFT(N2:N60,2)="17")*1)) どうも大変ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

そもそもDCount関数(Aつきとつかないものがある)のCriteriaは文字列を指定することをよく考えていたか疑問です。 ほとんどの例題は数字ばかりのセル群を対象とし、(この場合は空白セルを含めるかどうかは重大問題)>10、<10、=10などが載っています。 Pと入力してあるセルを勘定するなら、=COUNTIFの文字列版でよいのでは。=COUNTIF(A1:C4,"p")。 なぜDCOUNT関数、かつAつきなのか疑問あり。Pが入っておれば空白ではありえないわけだし。

rakuten55
質問者

補足

回答ありがとうございます。 カウント対象の列は数字もあれば漢字もあります。 その中で空白でないセルの個数をカウントしたいのです。 その他の検索条件として 16年、17年、18年とあるうち 16年と17年のみを拾いたいので DCOUNTAを使用しました。 あとはANo.5の補足を参照していただければ幸いです。 どうぞよろしくお願いします。

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

rakuten55 さん、こんばんは。 Wendy02 です。 ほんとうに、この件は、ややこしいですね。 >この設定の中の<> ?の記号の意味は何なんでしょうか? 今、私も気になって、ヘルプファイル全体の文字検索をしてみましたが、データベース関数の説明ではなく、比較検索条件の種類/[フィルタ オプションの設定] 「*,?」のワイルドカード文字と同じだと思います。「<>」 は、比較演算子といいます。 A   A   B P  <>P?  16* P  <>P?  17* P  <>P? 「P」を含んで、「Pに何かついている文字」ではない、ということです。 * は、任意の文字が、0 文字以上ということです。 ? は、任意の文字が、1 文字ということです。 <> は、その文字ではない、ということです。 >本来の数字よりも大きな数字が表示されてしまいました。 確か、それは、年度の数字ですよね。 ということは、 A   A   B P  <>P?  16/ P  <>P?  17/ でもよいはずですが、大きな数字というのは、どういう数字ですか?検索で出てきたのは、「18」 とかでありませんよね。どのような数字ですか?

rakuten55
質問者

補足

こんにちは。 回答ありがとうございます。 実際の表ではPと入れてある列には 漢字と数字も入っているのです。 カウント対象としたいセルが(例えば水)で <>水?と設定すると 水Mと入っているセルはカウント対象外になりますが 数字が入っているセルと漢字が入っているセルは カウント対象になってしまいました。 確かに英字のみの表では <>P? の設定で 正しくカウントするようですが 漢字と数字が含まれると どうも正しくカウントされないようです。 本来の数字よりも大きな数字というのは こういうことです。 どうぞよろしくお願いします。

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

こんにちは。 Excelの2002 だけが、「*」のワイルドカードが有効です。だから、バージョンを示してくれないと、正確なところはわからないのですが、 >Pと入力してあるセルのみ対象にしたいのですが 2002 以外では、以下のようになると思います。 Criteria は、L1:N3 L   M   N -------------------- A   A   B P  <>P?  16* P  <>P?  17* 註: <>P? は、Pの始まる二文字ではない、ということ。 なぜ、16,17をワイルドカードを付けなくてはならないかは、おそらく、数値をそのまま入れると、数値として扱うからだと思います。 Excel 2002では、 Criteria は、L1:M3 L   M ---------------- A   B P   16* P   17* ということになるはずです。 試してみてください。 本来は、2002 の仕様が正しいはずなんですが、戻してしまったようですね。

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;418595
rakuten55
質問者

補足

エクセルのバージョンは2003です。 確かにこの表では<>P?と設定すると 正しい数字が表示されました。 ただ、本来作成している表では 本来の数字よりも大きな数字が表示されてしまいました。 この設定の中の<> ?の 記号の意味は何なんでしょうか? 参考URLも見ましたが この記号そのものの説明はなかったようです。 すいませんがよろしくお願いします。

noname#11836
noname#11836
回答No.3

databeseが1行目からなのでは? 1行目を項目名にしてみてください =DCOUNTA(A1:C6,C1,L1:M3) A B C 1 b c d 2 p 16/4 ● 3 pc 17/4 ● 4 p 14/2 ● 5 p 16/7 ● 6 pc 17/8 ● L M 1 b c 2 p 16* 3 p 17*

回答No.2

こんにちは。 データベース関数のCriteriaについては、後ろにワイルドカードをつけてしまう仕様なんですね。 (解除する方法、私の知識では探せませんでした。) もう一列フィールドを増やして =A1&A1 とします。 こうするとPはPP、PCはPCPCとなりますから、あとは CriteriaでPPを指定してやってはどうでしょうか。 あと、オートフィルターでは、PとPCは別物として扱いますから、数を数えたいのであれば、ウィンドウ右下のオートカルクエリアを「データの個数」にしておけばマウスでドラッグするだけで、個数を表示することは出来ますね。

noname#11836
noname#11836
回答No.1

DCOUNTA(Database,フィールド,Criteria) の実際の値(もしくは、それに近い)を Database構成も含め教えてください。

rakuten55
質問者

補足

 A B      C L M N 1 P 16/1   ○  A B  C 2 PC 17/2  ○ P 16* 3 P 14/2  ○  P      17* 4 P 16/7   ○ 5 PC 17/8  ○ という表があったとします。   (実際の表はもっと複雑ですが) ここからA列がPでB列が16年と17年である C列の個数をカウントしたいのです。 関数式は=DCOUNTA(A1:C5,C1,L1:N3) と設定しました。 すると個数は本来は2個のはずですが 4個になってしまいます。

関連するQ&A

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

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

  • DCOUNTAのCriteriaにTODAY関数を入れたいのですが入りません。使える方法はありませんか?

    DCOUNTAについて CriteriaにTODAY関数は使えませんか? ダブルコーテーションなどを付けてみましたができませんでした。 別にTODAY関数を入れたセルを使って、参照することもできないし… いい方法がありましたら教えてください お願いします

  • エクセルのDCOUNTA関数について

    今晩は。 エクセルにはDCOUNT、とDCOUNTA関数の両方がありますがどう違うのですか、教えてください。 宜しくお願いします。

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

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

  • DSUM関数、DCOUNTA関数について

    A~Dのエクセルファイルから必要な情報をピックアップしEを作成したいのですが、 A~Dを閉じると、Eに入れたDSUM関数とDCOUNTA関数が#VALUEになってしまいます。 どうしたらよいのでしょうか? ちなみに入力したDSUM関数(テーブル使用)は、 =DSUM('[A.xls]1311'!$A$31:$L$300,'[A.xls]1311'!$H$31,I3:J4)です。 ※DCOUNTAも同様です。 自身でいろいろ調べてみましたが、いまいち分からずお手上げです。 よろしくお願い致します。

  • DCOUNTA関数で複数範囲を選択する

    DCOUNTA関数で複数のデータ範囲を対象とする場合、それぞれ別個にDCOUNTA関数で値を出して合算する、という方法ならできたのですが、 複数の範囲に名前を設定して一個の関数だけで算出しようとしたら、できませんでした。 例)できたやり方   =DCOUNTA(B2:D52,"氏名",V2:W3)+DCOUNTA(F2:H52,"氏名",V2:W3) 例)できなかったやり方   名前の定義で参照範囲      =B2:D52,F2:H52   にデータ範囲という名前を付けて、   =DCOUNTA(データ範囲,"氏名",V2:W3) 名前の定義の方法が違うのか、DCOUNTAで複数範囲を対象とすることができないのか、何が悪いのでしょうか?

  • DCOUNTA エクセル2003

    会社でエクセル2003を使っています。 データリストは A列  B列  C列  D列  E列  F列 リストNo. 名前 会員ランク 年齢 性別 住所 と入力しています。 DCOUNTA 使って、条件別の件数を出したいと思っています。 DCOUNTA(A1:F51,B1,H1:M2) の条件式であれば、それぞれいろいろな条件で件数が出せるのですが、 DCOUNTA(A1:F51,B1,H1:M5)として、例えば、C列のランクを「ゴールド会員」と「シルバー会員」の同じ項目の複数の種類を出したい場合、まったく条件式が機能しません。 DCOUNTAは使えないのでしょうか? なにとぞよろしくお願いします。 画像を添付してみました 上のセル番号と添付画像のセル番号が違うのですが…お許しください。 見えにくいのもお許しください

  • Excel DSUM DCOUNTA関数の使い方

    こんにちは。 Excel2003でDSUM DCOUNTA関数を使用しています。 ある範囲の中から文字列が何個あるか計算します。 この関数の場合たとえば shouhin2000とshouhin3000は別物としてカウントされるので問題はありません。 しかし shouhin2000とshouhin2000+は区別されずにまとめて何個あるかカウントされてしまいます。 この場合区別してshouhin2000とshouhin2000+を別々にカウントする方法はありますか? また上記の逆で shouhin2000とshouhin3000をまとめて何個あるかカウントする方法はありますか? 特にDSUM DCOUNTA関数にこだわっていませんが前任者が作ったファイルを 改造しているためでてきた問題です。 ご存じの方お教えください。 よろしくお願いいたします。

  • DCOUNT関数とDCOUNTA関数の違い

    DCOUNT関数とDCOUNTA関数の内容の違いがよくわかりません。前者が「数値の個数」で後者が「データの個数」であることは、わかります。 しかし、実際にやってみるとどちらを使えばよいのかわからなくなってきます。使用する何を基準にすればよいのでしょうか?

  • エクセルの関数について誰か教えてください。

    エクセルの関数について誰か教えてください。 シート1のI3からP550までのセルに、記号や文字などのなにかデータの入力があれば、そのデータ入力があった横のセル1行全部のデータをシート2のA4のセルに表示させる方法を教えてください。 例えば横のセル3のI3からP3のセルどれかに何かデータ入力があれば、横のセル3のA3からP3までのデータをシート2に順に表示。横のセル4のI4からP4のセルどれかに何かデータ入力があれば、横のセル4のA4からP4までのデータをシート2のセル3のデータの下に順に表示させていきたいのです。 シート1のI3からP550までのセルにデータ入力がないものは対象外として、シート2にも表示はしない形にしたいのです。 よろしくお願いします。

専門家に質問してみよう