如果满足某些条件,则用数字对单元格进行Excel计数

时间:2018-10-31 22:47:56

标签: excel count conditional

我想找到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,"")

enter image description here

1 个答案:

答案 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