ColA ColB ColC ColD ColE
DATE COUNTRY 1 COUNTRY 2 COUNTRY 3 COUNTRY 4
01/xx/2017 INDONESIA GERMANY PHILIPPINES PAKISTAN
01/xx/2017 MOROCCO MOROCCO MOROCCO ITALY
23/xx/2017 USA UK NETHERLANDS MOROCCO
23/xx/2017 MOROCCO TANZANIA AUSTRALIA SWEDEN
我可以使用什么公式来计算某个国家/地区的出现次数(让我们说Morocco
)ColB:ColE
但只计算一次,如果多次出现在同一行中?在这种情况下,例如结果应为3
。
答案 0 :(得分:1)
试试这个:
=ArrayFormula(COUNTIF(MMULT(--(B2:E5="MOROCCO"),TRANSPOSE(COLUMN(B2:E5)^0)),">0"))
BTW可以使用任何逻辑表达式代替--(B2:E5="MOROCCO")
第一个行为是true
和false
数组:ArrayFormula(B2:E5 =“MOROCCO”)
输出就像这样
true false false false
true true true false
false false false true
false false false false
然后我们需要将其转换为1 / 0
数组。简单的数学运算就可以了:
ArrayFormula(--(B2:E5="MOROCCO"))
现在的输出是:
1 0 0 0
1 1 1 0
0 0 0 1
0 0 0 0
现在我们可以按行添加它们:使用mmult
函数。但首先我们需要一列1
,其中元素数量=数组中的列数。要使用公式:
=ArrayFormula(TRANSPOSE(COLUMN(B2:E6)^0))
结果是:
1
1
1
1
最后使用mmult:=ArrayFormula(MMULT(--(B2:E6="MOROCCO"),TRANSPOSE(COLUMN(B2:E6)^0)))
结果是:
1
3
1
0
我真的不知道,为什么会这样。只是用这个。
最后一步是计算所有> 0
= 3