我想找到NO2列中包含数字的单元格的百分比,例如,仅考虑某个小时内某个月份中某个月份内的单元格-例如,NO2中有多少个单元格包含数字一月每天第一小时的第一列。
我一直在尝试做1 - COUNTIF(condition,"*")/COUNTA(condition)
,但是在写条件部分时遇到了麻烦。
条件(考虑三个月)。它给了我$ VALUE!如果我尝试将其放入COUNTIF
IF($C$1:$C$8985="January",
IF($B$1:$B$8985="1:00",$E$1:$E$8985,""),
IF($C$1:$C$8985="February",
IF($B$1:$B$8985="1:00",'$E$1:$E$8985,""),
IF($C$1:$C$8985="December,
IF($B$1:$B$8985="1:00",$E$1:$E$8985,"")
答案 0 :(得分:1)
尝试使用=SUMPRODUCT()
:
=SUMPRODUCT(--(A:A="January"), --(B:B=TIMEVALUE("1:00")), --(ISNUMBER(C:C)))
要替换的地方:
A:A
和您的月份列B:B
和您的时间列C:C
和“ NO2”列如果您想使用 OR逻辑,则可以简单地“添加”条件,使其看起来像
--((A:A="January")+(A:A="February"))
。
=SUMPRODUCT(--((A:A="January")+(A:A="February")), --(B:B=TIMEVALUE("1:00")),
--(ISNUMBER(C:C)))
因此,这表示A列可以 January
OR February
,和 B列有时间1:00
,和列C的值是数字值。
这实际上创建了三个数组-每个条件1个。看起来像这样:
{"January", "January", "January", "February"}
{"1:00 AM", "1:00 AM", "2:00 AM", "1:00 AM" }
{ 1.0, 1.3, "text", 4 }
它将这些转换为True / False
{True, True, True, True}
{True, True,False, True}
{True, True,False, True}
^^^^ ^^^^ ^^^^ << Counts the number where ALL are 'True'
当每个“索引”都返回true时,它将被添加到您的函数中。
如果这些数组的长度不同,那么您的
SUMPRODUCT()
函数将返回错误。{True, True, True, True} {True, True,False, True} {True, True,False} ^^^^ ^^^^ *ERR << Returns error as the last array was smaller