
excelで以下のような表とした場合、作業列なしでカウントする方法はありますか?
A列 B例
1/1 りんご
1/1 りんご
1/1 みかん
1/2 ぶどう
1/3 みかん
1/3 りんご
2/1 ぶどう
2/2 りんご
2/2 みかん
2/4 みかん
2/5 りんご
2/5 ぶどう
2/5 りんご
欲しい答えは、同じ日付は1としてカウントするため、りんごで数える場合は4、みかんで数える場合は4、ぶどうで数える場合は3としたいです。
なお、何を数えるかは、別セルに入力したもので指定します。
また、更に1月とか2月などの期間を絞って、同様にカウントする方法はありますか?
欲しい答えは、1月のりんごで数える場合2、1月のみかんで数える場合2、1月のぶどうで数える場合1としたいです。
なお、何月の何を何を数えるかは、別セルに入力したもので指定します。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No.3です。
BelltreeriverさんがUNIQUE関数を使った例をお示しになったのですが、利用環境がスプレッドシートのようです。
スプレッドシートだと、COUNTIF関数の「対象範囲」に「配列」を利用できるのですが、EXCELだとエラーになってしまいます。
そこで、EXCELでも使用できるUNIQUE関数を使った例を考えてみました。
前回回答で使用した添付画像のG3セルに、
=SUMPRODUCT(1-ISERROR(FIND(E3&F3,UNIQUE(INDEX(TEXT(A2:A14,"d/m")&B2:B14,0)))))
という数式を記述することになります。
No.4
- 回答日時:
unique関数を使用した1例です。
D1=countif(unique(index(text(A1:A13,"d/m")&B1:B13,0)),"*"&C2&C1&"*")

No.3
- 回答日時:
fujillinさんが、COUNTIFS関数を使用した数式をお示しになったので、別の数式をお示しします。
fujillinさんの数式はCOUNTIFS関数を使って、最初に出現する組合せを判別することで、重複しないものを抽出する手法です。
この回答ではMATCH関数を使って「最初に出現する」を判別して重複を排除しています。MATCH関数は範囲(または配列)の中から検索値と一致するものを探すことができる関数ですが、最初に登場するものしか検出できないという欠点もよく知られています。
つまり、複数同じものがあっても、最初に登場するものしか検出できないので、これを逆手にとって、「自分と同じものが検出される位置が自分の位置と同じなら最初に登場するのは自分自身である」と判断して重複排除しています。その考えで、数式を組み立ててみました。
前提条件としては日付は「○月○日」と表示されているが「2023/1/5」のように入力し、中身はシリアル値で、セルの表示形式を「m"月"d"日"」としているものとします。
また、カウントする対象月の指定セルである添付画像のE2セルは入力規則でドロップダウンリストから1~12の数値を選択するものとし、セルの表示形式を「0"月"」として「○月」と表示しているものとします。
>欲しい答えは、同じ日付は1としてカウントするため、りんごで数える
>場合は4、みかんで数える場合は4、ぶどうで数える場合は3としたい
>です。
というのが、最初のご質問です。
添付画像をご覧ください。G2セルに
=SUMPRODUCT((MATCH($A$2:$A$14&$B$2:$B$14,$A$2:$A$14&$B$2:$B$14,0)=ROW($A$1:$A$13))*($B$2:$B$14=F2))
という数式を記述しています。
>なお、何を数えるかは、別セルに入力したもので指定します。
ということなので、F2セルに「数えるもの」を入力するようにしています。
>更に1月とか2月などの期間を絞って、同様にカウントする方法は
>ありますか?
というのが次のご質問です。
添付画像をご覧ください。G3セルに
=SUMPRODUCT((MATCH($A$2:$A$14&$B$2:$B$14,$A$2:$A$14&$B$2:$B$14,0)=ROW($A$1:$A$13))*($B$2:$B$14=F3)*(MONTH($A$2:$A$14)=E3))
という数式を記述しています。
>なお、何月の何を何を数えるかは、別セルに入力したもので
>指定します。
ということなので、E3に「何月」、F3に「数えるもの」を入力するようにしています。この場合も同日のカウントは1つとして数えています。
なお、各数式のセル範囲はご質問者が掲示されたデータ内容そのままですので、実際のデータにあわせて変更してください。
その際、ROW($A$1:$A$13)の部分はMATCH関数が返す表中のデータ範囲の行位置を示します。つまりシート2行目~14行目までデータがある場合、MATCH関数が返す範囲は1行目から13行目という意味になります。
fujillinさんのご指摘だと、
>MONTH関数は配列計算には対応していない
とのことです。
本回答の数式はMONTH関数を使用していますが、正しい結果を返す気がします。私の検証不足かも知れませんが・・・・・・。

No.2
- 回答日時:
No1です。
連投失礼。
式中のセル範囲を修正するのを忘れました。
No1の最後の条件式は
(A1:A999<"2023/2/1"*1)
が正ですね。
また、定数部分を先に計算して
(A1:A999<44958)
としておいた方が、計算量はわずかながら軽減されると思います。
No.1
- 回答日時:
こんばんは
>作業列なしでカウントする方法はありますか?
配列計算で各行を評価して、TRUEになる(=該当する)行の数をカウントすればできそうですね。
作業列を用いるのに比して、無駄な計算が飛躍的に多くなるので、計算負荷がかかります。
例えば、「りんご」をカウントするのであれば、
=SUMPRODUCT((COUNTIFS(OFFSET(A1,,,ROW(A1:A999)),A1:A999,OFFSET(B1,,,ROW(B1:B999)),"りんご")=1)*(B1:B999="りんご"))
で、ご提示のデータの場合は4の結果が得られます。
「みかん」、「ぶどう」の場合は、式中の"りんご"の部分(=2か所)を変更することで、それぞれ4、3が得られます。
※ A列の日付は全て、シリアル値であるものと仮定しています。
※ 配列計算なので、対象範囲を広くしすぎると計算が重くなります。
必要最な範囲に絞っておくことをお勧めします。
(上式ではA1:B999の範囲を対象にしてあります)
※ 365環境であれば、UNIQUE関数を利用することで重複を除くことができますので、式を簡略化することが可能であろうと思います。
>1月とか2月などの期間を絞って、同様にカウントする方法はありますか?
最初に述べたように、各種条件をANDで評価(=乗算)して、結果がTRUE(=1)になるものをカウントしていますので、上記の式に「期間の条件」を追加することで計算可能です。
ただし、条件が多くなるほど、計算負荷は「条件数×セル範囲数」という形で増加します。
簡単な例として、上式に
(A1:A13<"2023/2/1"*1)
の判定式を追加すれば、(片側判定のみですが)2月より前(=1月)を条件にすることになるので、結果は2となります。
MONTH関数が使えれば簡単ですが、MONTH関数は配列計算には対応していないようなので、上記のようなプリミティブな式にしています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Excel 知恵を下さい。 下記表は、例です。本来の表のデータ量は、1000件以上あります… A列:
Excel(エクセル)
-
エクセルのソート方法について
Excel(エクセル)
-
Excelの入力規則にいれる関数について
Excel(エクセル)
-
-
4
エクセルで重複しない組み合わせの出し方
Excel(エクセル)
-
5
Excel この式はどんな意味でしょうか。。。
Excel(エクセル)
-
6
Excelで2つの条件のうちどちらかにあてはまるときの数式を教えてください。
Excel(エクセル)
-
7
Excelの関数詳しい方お願いします。
Excel(エクセル)
-
8
Excel 値を返す数式についてです
Excel(エクセル)
-
9
Excelにて、下記のようなデータを月だけ変えて下にドラックしていきたいです。どうすれば良いですか?
Excel(エクセル)
-
10
エクセルのユーザ定義にて、電話番号の一部を非表示にできますか?
Excel(エクセル)
-
11
何故割り算なのでしょうか?
Excel(エクセル)
-
12
Excel教えてください。 下記のことが出来るのは、マクロですか?条件付き書式でしょうか、、?知恵を
Excel(エクセル)
-
13
年間仕事用シフトカレンダーに、日勤 夜勤 休み に色分けをした。
Excel(エクセル)
-
14
勤務表の中抜け集計の関数を教えてほしいです。
Excel(エクセル)
-
15
余計なお世話的な「入力規則」?対策は?
Excel(エクセル)
-
16
EXCELで参照したデータを検索したい。
Excel(エクセル)
-
17
Excelについて
Excel(エクセル)
-
18
Excel処理について、教えて下さい。 下記表は、サンプルです。(実際には千件以上あります) A列に
Excel(エクセル)
-
19
Excelで日数の関数がうまく出せません。
Excel(エクセル)
-
20
【Excelの集計について質問です。】
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Excelでの全通りの組み合わせ出...
-
5
自家製の味の良くないサクラン...
-
6
果実酒を長期熟成させると・・
-
7
梶井基次郎の檸檬
-
8
パイナップルにたかる虫
-
9
国道沿いの路肩などで格安で売...
-
10
コオロギの食べ物
-
11
ライム(果物)を漢字になおす...
-
12
エクセル 同名の場合はB列にC...
-
13
「であり」と「であって」の使...
-
14
スイカの種みたいな黒い虫の正...
-
15
教えてください!!
-
16
中黒「・」か読点「、」か?
-
17
さくらんぼに似ているが、さく...
-
18
Excel MATCH関数で検索範囲内...
-
19
イチゴジャムを作っているんで...
-
20
市販のメロンをクール便にしな...
おすすめ情報
公式facebook
公式twitter