您可以尝试以下公式:
对于问题一:
=SUM(N(MAP(A2:A8,LAMBDA(x, COUNTIF(A2:x,x)))=1))
-
使用
MAP()
函数迭代中的每个单元格
Company
列以获取运行计数。
-
以上返回运行计数,因此等于
1
它赋予了独特的品牌,但没有考虑到
Made in
类别,但如果数据如OP中所示是一致的,那么这应该有效。
-
以上返回
TRUE
和
FALSE
-->
符合事实的
是那些唯一的值,为了得到计数,我们只是将它们相加。
-
或者,如果要考虑列标题以使其动态,则需要使用以下公式:
=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}))<>""))
或者短一点的替代方案,可能是:
=ROWS(UNIQUE(TOCOL(IFS(FILTER(C2:E8,1-ISNA(XMATCH(C1:E1,{"Made in CHI","Made in USA"})))>0,A2:A8),2)))
或
=ROWS(UNIQUE(TOCOL(IFS(1-ISNA(XMATCH(C1:E1,{"Made in CHI","Made in USA"})),A2:A8),2)))
对于问题二:
=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()
它不会也会返回所需的确切输出。