Company Brands Made in CHI Made in TW Made in USA
1 AA Apple 6 0 1
2 BB BoyO 0 1 0
2 BB BoyX 1 0 0
3 CC Car 17 1 0
4 DD DogO 4 0 1
4 DD DogX 1 0 1
5 EE Elva 8 1 0
问题1
我想查一下有多少家公司有CHI或美国制造的产品(有些公司有2个或更多品牌,但我只想数1次,比如DogO和DogX这两个品牌都有CHI或美国制造的产品,但他们属于同一家公司,所以我只算1次)
结果应该是5(分别是公司AA、BB、CC、DD、EE)
问题2
我还想检查有多少家公司在美国制造产品(DogO和DogX也有在美国制造的产品,但它们来自同一家公司,所以我只想数1)
结果应为 2(即公司 AA 和 DD)
您可以尝试以下公式:
• 对于问题一:
=SUM(N(MAP(A2:A8,LAMBDA(x, COUNTIF(A2:x,x)))=1))
MAP()
函数迭代 Company
列中的每个单元格以获取运行计数。1
,它给出了独特的品牌,但它没有考虑到 Made in
类别,但如果数据与 OP 中所示一致,那么这应该有效。TRUE
和 FALSE
--> TRUE
是唯一值,为了获得计数,我们只需将它们相加即可。=SUM(N(FILTER(A2:A8,MMULT( (1-ISNA(XMATCH(C1:E1,{"Made in CHI","Made in USA"})))* (MAP(A2:A8,LAMBDA(x,
COUNTIF(A2:x,x)))=1),{1;1;1}))<>""))
• 对于问题二:
=SUM(N(UNIQUE(FILTER(A2:A8,MMULT((1-ISNA(XMATCH(C1:E1,"Made in USA")))*(C2:E8>0),{1;1;1})))<>""))
XMATCH()
获取匹配的标题列,并验证相应列的值是否大于 0
MMULT()
中以在两个数组的矩阵乘积之后返回输出。FILTER()
函数仅抓取那些大于 0
UNIQUE()
函数排除重复项SUM()
我们还可以使用 ROWS()
函数或 COUNTA()
但避免使用,因为该函数可能会返回 FALSE POSITIVES
,而使用 SUM()
它不会,并且会返回所需的确切输出。