Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
縦横混合条件での件数算出方法
投稿日時: 20/01/30 14:12:59
投稿者: 駐車場

駐車場と申します。
 
タイトルの件について、
 

	フラグ	0	1	1	0
担当者	数値	項目1	項目2	項目3	項目4
佐藤	-1	1	-1	0	4	☆
鈴木	2	5	0	7	8
高橋	-3	9	1	1	-12
田中	-4	9	0	0	12	☆

上の表で、各担当者の数値がマイナス(0未満)で、
フラグが1の項目の数値の合計が0以下の(☆マークの)件数を求める。
 
という問題があった場合に
 
	フラグ	0	1	1	0
担当者	数値	項目1	項目2	項目3	項目4	フラグが1の項目の合計(作業列)
佐藤	-1	1	-1	0	4	-1
鈴木	2	5	0	7	8	7
高橋	-3	9	1	1	-12	2
田中	-4	9	0	0	12	0

対象件数 2

という感じで、作業列を使用すると数式ひとつで算出できます。
(作業列はSUMIF、件数はSUMPRODUCT関数で算出します)
 
では、これを作業列を使用せずに件数を数式ひとつ(セル一つ)で算出する方法を教えてください。
SUMPRODUCT関数や配列関数を使ってもひとつの式だけで算出がどうしてもできません。
 
マクロで算出や、自作関数を作成すればできるのはわかりますが、
できれば通常の関数のみで対応したいと思っております。
 
宜しくお願い致します。

回答
投稿日時: 20/01/30 15:16:00
投稿者: んなっと

    A    B    C    D    E    F   G
1     フラグ    0    1    1    0 総数
2 担当者  数値 項目1 項目2 項目3 項目4   2
3  佐藤   -1    1   -1    0    4  
4  鈴木    2    5    0    7    8  
5  高橋   -3    9    1    1   -12  
6  田中   -4    9    0    0   12  
 
G2
=SUM((B3:B100<0)*(MMULT(C3:F100*1,TRANSPOSE(C1:F1))<=0))
Ctrl+Shift+Enter同時押し

投稿日時: 20/01/30 15:33:37
投稿者: 駐車場

んなっとさん、ありがとうございます。
 
トゥラァンスポォゥズ!!!
TRANSPOSE関数の発想はなかったです。
縦横混合って自分で言ってるのに気づけなかったのが悔しいです!
 
ありがとうございます。
 
今回は例としてフラグ部分を0と1にしており、
実際に使用するものは異なりますが、
IFで分岐変換して無事算出することができました。
 
以上で解決済みとします。
ありがとうございました。