计算上面非空白单元格的列数

我有一张表,每一行是一个时间,每列是一个主题,每个条目是付款。 每一次,我都要计算曾经收到过付款的主题数量(即有多less主题在该行之上有非空白列)。 我怎样才能做到这一点?

谢谢你的帮助!

(从excel复制出来有问题,前四列是数据,第五列是我的预期结果,#= number, – = blank,| =列分隔符,感谢Siddharth Rout格式化帮助)

# | - | - | # || 2 - | # | - | # || 3 # | # | - | - || 3 - | - | - | - || 3 - | - | # | - || 4 

我其实很喜欢这个问题。

我能想到的唯一方法就是在表格的顶部添加一个额外的“助手”行。

在这里,我将如何做到这一点:

  • 在工作表顶部添加新行(第1行)
  • 在单元格A1(新插入的行)中,input以下公式:

    =MATCH(TRUE,INDEX((A2:A9000<>""),0),0)+1

(这将告诉你该列中第一行存在值 – 将A9000更改为更合适的数据行数):

  • 将该公式拖到您有数据的所有列上
  • 在你想要最终结果的列中(假设它是这个例子中的E列),在E2中input下面的公式:

    =COUNTIF($A$1:$D$1,"<="&ROW())

  • 将该公式向下拖动整列,您应该得到您想要的结果。


作为一个解释,帮助者行查找表中有数据的第一行,最后一列仅计算该帮助者行中小于或等于当前行号的所有值。

希望这是有道理的。