• ベストアンサー

MS ACCESSで特定の値のカウント方法

ACCESS初心者です。 クエリにて特定のセルの値と同じ値が列内に何個あるかをカウントし、 同じ行に返す方法があれば知りたいです。 EXCELで言う B1=COUNTIF(A:A,A1) B2=COUNTIF(A:A,A2) B3=COUNTIF(A:A,A3) ・ ・ ・ という結果を表示してくれる列が欲しいです。 ネットで検索しましたが、固定値だったり、フォームで変数を入力する方法は 出てくるのですが、既に入力されている値からの方法が出てきません。 分かる方がいましたらお願い致します。

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

数値型の場合です。 個数: DCount("*", "テーブル名", "フィールドA = " & [フィールドA]) テキスト型なら 個数: DCount("*", "テーブル名", "フィールドA = '" & [フィールドA] & "'") テーブル名、フィールド名 は実際のものに置き換えてください。 直書き後免。

rutohamuni2012
質問者

お礼

できました、ありがとうございます!

その他の回答 (1)

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

>何個あるかをカウント この部分はアクセスでもやり方はあります。 しかし、質問者の発想が、エクセルからパソコン利用に入って、そこから抜けられない人の状況を、抜けられていません。 エクセルは表計算ソフトであり、文章も入れられ、結果も(他ブックでも可の)同一シーとの別セルにセットできるという自由さがあります。処理結果もデータも同一シートにある(置ける)わけです。 アクセスは生のデータのみをテーブルに持つようにするものです。 処理結果=派生データは(基データと)混在させないのが、使い方です。 質問者はこの掟を、知ってか知らずか、破ろうとしているのでは。希望を通すと様々な困難が待ち受けていて、質問者のレベルでは、手に負えないでしょう。 別テーブルに処理結果=派生データを(何か適当なキー項目の元に、(例えば日付))書き出すことは可能でしょう。 あるいは、結果だけを保持する、フォームに持ってくるとか。 ーー また上級者が、アクセスの広げた使い方を考えた Accessでメモ帳をつくろう(テーブル編) のような発想もあります。 https://micata.net/index.php?Access%E3%81%A7%E3%83%A1%E3%83%A2%E5%B8%B3%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8D%E3%81%86%EF%BC%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E7%B7%A8%EF%BC%89 == エクセルの便利さが忘れられないなら、アクセスのテーブルをエクスポートして (ADOのCopyFromDatasetのようなもの)、エクセルで考えれば仕舞い。 「アクセスからエクセルへエクスポート」Google照会のこと。 == 質問者は結果件数を出したとして、それをどこで(アクセスで、エクセルで、その他で)どう使いたいのか、書かないで質問しているが、片手落ちだろう。(そういう質問者が多いが)。それによっては質問の発想が尤もかどうか決まる。

関連するQ&A

  • COUNTIFで特定の文字列を含む値のカウント方法

    Excel2010を使っている者です。 COUNTIF関数で特定の文字列を含むセルの数をカウントしたいのですが、結果がゼロになってしまいます。 具体的には A列の1行目から900行目までに以下のように番号が振ってあって、その中で1994を含むセルの数を数えようと思っています。 計算式として「=COUNTIF($A$1:$A$900,"1994")」と入力したのですが、戻り値が0になってしまいます。 なお、A列は数値にしても文字列にしても結果は変わらず、「=COUNTIF($A$1:$A$900,"1994*")」とワイルドカードを使った検索にしても同じく0になってしまいます。 1994000001 1994000002 1994000005 ~ 2009111112 2009111117 もう一つ関連した質問をさせていただきますが、そもそもこの関数で特定の文字列を含む検索をかけたいときは、ワイルドカードの*を使わないとうまく計算できないものなのですか? よろしくお願いいたします。

  • EXCELでのカウント

    こんんちは!いつも使っている簡単な関数ならわかるのですが... 範囲→1列(A列やB列) 範囲内で指定の文字が入力されているセルの数をカウントしたい(返したい)んです。 例)B列に「2」「23」「50」「13」「12」と入力されているとしたら   「2」を入力しているセルをカウントしたかったら   「3」と出てくるように... COUNTIF関数だと「2」を指定したら「2」と入力したセルだけカウントされますよね。(例えば上記例だと「1」と帰ってくる。これを「2」を含んでいるセルの数をカウントしたいんです。 教えてください。 宜しくお願いいたします。

  • カウントについて

    エクセルをつかってカウント処理を考えています. どなたかアドバイス頂けないでしょうか。 下記のような表があります. 例えば、セルA1~3まで100とあり、セルA4~5まで400とセルA1~3とセルA4~5の数値はおなじです。3行分だったり2行分だったりと不規則コードが下に続いていきますが,まとまった数値になります. そのA列の同じコード番号全てに対して、B列にカウント数を入力したいのです。 B列のカウント数入力箇所は、セルA1~3までだとするとセルB3に最大値のカウント数がくるようにしたいのです。 コード  カウント数      100              100               100      3        200               200      2        500               500               500               500      4       

  • Accessでのカウント方法

    エクセルの場合で説明します。 A列は入荷、B列は出荷です。それぞれ、同じ日に複数回の入荷もしくは出荷があることもあれば、全くない日もあります。そこでD列以降のように、日別で入荷と出荷の回数をカウントしたいのです。 A列とB列のようなテーブルをアクセスで作り、クエリでD列以降のような結果を出す場合、どのようにすればいいのでしょうか?単純にカウントではできませんでした。→この場合はどちらかが主軸になるため、思ったような結果が出ません。 またエクセルのようなCountIfのような関数も内容なのですが・・・ 初歩的な質問かも知れませんがよろしくお願いします。

  • エクセル 特定の文字のみカウント

    1列目が「〇」の時の、その行の「a1」だけカウントするにはどうすればよいのでしょうか? R2C6に =COUNTIF(RC[-4]:RC[-1],"a1") と入力すると「A1」と「a1」をカウントしてしまい「2」になってしまいます。 「A1」と「a1」を区別できるようにカウントさせたいです。 よろしくお願いします。

  • エクセルで特定のセルだけのカウント

     A  B  C   D 1           × 2   ×  ×  × 3 × 4 × 5 ×    × 上記のような表で、列ごとにその列だけが×のセル数をカウントする方法 がわかりません。 例えばA列=2(3、4行目は他の列に×を含まないのでカウント) B列=0 C列=0 D列=1(1行目) となります。 実際には行数が多いため計算式でカウントしたいと思っています。 どうぞよろしくお願いいたします。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • エクセルで同じ値をカウントアップする

    エクセルで特定列の同じ値をカウントアップする方法を教えていただけないでしょうか? 以下のように、A列にはランダムに値が入力されていて、 B列に同じ値の個数をカウントアップしたいと思っています。 A|B --|-- AA|1 AB|1 BD|1 BD|2 AA|2 FG|1 AA|3   

  • Excelのカウントについて(複数条件)

    Excelのカウントについて質問です。      A列  1行目 1-2-3  2行目 2-3-1 3行目 4-5-1 4行目 3-2-1 5行目 1-3-2 6行目 ( ) 上記の表があり、A列6行目にA1~A5のカウントを表示したいと思います。 その際、1-2-3、2-3-1、3-1-2など、同じ数字でできているものであれば、順番が違っていても同じものとみなしてカウントしたいのです。 ※1-2-3は文字列です。 COUNTIFを使って下記のようにすればカウントできなくはないのですが、もっと効率よく短縮して書けないかと思っています。 =COUNTIF(A1:A5,"1-2-3")+COUNTIF(A1:A5,"1-3-2")+COUNTIF(A1:A5,"2-1-3")+COUNTIF(A1:A5,"2-3-1")+COUNTIF(A1:A5,"3-1-2")+COUNTIF(A1:A5,"3-2-1") 簡潔にする方法がありましたらおしえてください。

  • Excelで「範囲内の一つ以上に値が入っている」

    200行×50列ほどの入力欄がある表で、「入力するセルの左にある特定のセルの値が同じである範囲のうち一つ以上に値が入っていたら1」とカウントしたいです。 A__DEF 1__○_○ 2__○○_ 3___○○ 3__○__ 4__○_○ 4__○○○ 4____○ 5___○_ 6__○○○ 例えば上のような状態の時、D列は「5」E列は「5」F列は「4」になってほしいです。 今は範囲を直接指定してSIGNとCOUNTIFで集計しているのですが、行数が多くなると数式も長くなり、見づらかったりセルの限界に達したりしてしまいます。 いい方法があれば教えてください。 前提条件に不足があるようなら補足で説明します

専門家に質問してみよう