プロが教えるわが家の防犯対策術!

エクセルの関数で複数の条件を指定して、延べ人数ではない実人数をカウントしたいと考えています。

例えばこのような表です。
A(日付)B(利用者番号)C(利用施設)
9/1   1       小会議室
9/2   2       小会議室
9/5   1       体育館
9/6   3       小会議室
9/7   3       体育館
9/8   1       小会議室
9/9   3       体育館

この場合小会議室の延べ利用者人数は4ですが、
1が2回使用しているので3という数字を求めたいです。
同じように体育館は2という数字です。

お知恵を貸して下さい。お願いします。

A 回答 (4件)

例データ


9月1日1小会議室
9月2日2小会議室
9月5日1体育館
9月6日3小会議室
9月7日3体育館
9月8日1小会議室
9月9日3体育館
9月10日1小会議室
9月11日4小会議室

=SUMPRODUCT((C1:C9="小会議室")*(COUNTIF(OFFSET($B$1,0,0,ROW(B1:B9),),B1:B9)=1))
意味はC列が小会議室でかつ、B列について上行から初出(COUNTIFか
1であるで判る)のものをカウントした。
    • good
    • 1

  A    B     C     D    E   F     G


1 日付 利用者番号 用施設  TEMP     施設名  利用者数
2  9/1      1 小会議室 1小会議室   小会議室     3
3  9/2      2 小会議室 2小会議室   体育館      2
4  9/5      1 体育館  1体育館
5  9/6      3 小会議室 3小会議室
6  9/7      3 体育館  3体育館
7  9/8      1 小会議室 1小会議室
8  9/9      3 体育館  3体育館

D2: =B2&C2
G2: =SUMPRODUCT((C$2:C$8=F2)*(1/COUNTIF(D$2:D$8,D$2:D$8)))
    • good
    • 1

情報提供を元に考えてみたのですが、


まず、D列に下記の式を入れて、利用者と施設名を1つにします。
=CONCATENATE(B2,C2)  ※(D8までオートフィル)

そして下記式をE列に入れ、D列に繰り返し出てくる利用者&施設名を除外し、
且、その、施設名が返るようにする。
=REPT(C2,COUNTIF(D$2:D2,D2)=1)  ※(E8までオートフィル)

最後にE列をそれぞれの利用施設にてカウントする。
=countif(E2:E8,"小会議室")
=countif(E2:E8,"体育館")

という感じしか思い浮かびませんでした。
2つの条件をもつカウントって難しいですね;;
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!