アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
やりたいことは

特定の文字列条件にヒットした件数を知るということで

以下を参考に
https://answers.microsoft.com/ja-jp/msoffice/for …


例)部署Aのタカハシの件数を知る
=SUMPRODUCT((SUBTOTAL(3,INDIRECT("A"&ROW(3:101))))*(B$1:B$100="タカハシ")*(B$1:B$100="部署A"))

上記で件数取得できたのですが、

日付けのソートで
2017/06-2017/07
の範囲でフィルタした場合でもフィルタの範囲外も条件に含めてしまって困っております

COUNTIFでも同様の結果で困っております。

フィルタされた範囲で件数を知るにはどうしたら良いのでしょうか。

A 回答 (3件)

こんにちは



ご提示の関数(SUMPRODUCT)は、もともとは行列の積を求める関数です。
それを、論理値の積を計算させることで、条件に該当する数(=TRUEのAND)を求めることができることを利用しているものと思います。

ご質問の内容が正確にはわかりませんが、条件の内容が異なるだけのように思われますので、同様にして求めることが可能と推測できます。

>日付けのソートで2017/06-2017/07
>の範囲でフィルタした場合でもフィルタの範囲外も条件に含めてしまって困っております
関数式の条件に、フィルタの条件も加えて計算するようにしておけば計算可能と思います。

>COUNTIFでも同様の結果で困っております。
COUNTIF関数は一つの条件に合致する個数を求める関数ですが、複数条件になると思いますので、COUNTIFS関数を利用することで、上記と同様のことが可能と推測します。
(むしろ、COUNTIFSの方が本来の意図と合致しているといえるかも知れません)
    • good
    • 0

例)部署Aのタカハシの件数を知る


=SUMPRODUCT((SUBTOTAL(3,INDIRECT("A"&ROW(3:101))))*(B$1:B$100="タカハシ")*(B$1:B$100="部署A"))

こちら↑の式は正しいのですか?
"タカハシ"と"部署A"は同じ列にあるのですか?

違う列にあるというのなら以下の式のほうが良いのでは。
=SUMPRODUCT(SUBTOTAL(3,INDIRECT("A"&ROW(A1:A101)))*(B$1:B$100="タカハシ")*(C$1:C$100="部署A"))

同じ列にある二つの文字列だとしたら、以下のようになると思う
=SUMPRODUCT(SUBTOTAL(3,INDIRECT("A"&ROW(A1:A101)))*(B$1:B$100="タカハシ")+SUBTOTAL(3,INDIRECT("A"&ROW(A1:A101)))*(C$1:C$100="部署A"))
この式だと長くなるので、別方法を検討してはいかが。
一例:
日付でフィルタ。B列の文字列「タカハシ」、「部署A」でフィルタ。
 =SUBTOTAL(3,B2:B12)
でカウント。
    • good
    • 0

> 2017/06-2017/07


> の範囲でフィルタした場合でも
そもそもそれを条件に組み込めば こんな数式にする必要すらないと思うのですが。
SUMIFSでできますよ。

後 そもそもでいうなら「フィルタをかける」のが苦でないなら ピボットテーブル
を作ってしまえばいいと思います。
    • good
    • 0

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