Excel formula 获取Excel公式中使用的单元格计数

Excel formula 获取Excel公式中使用的单元格计数,excel-formula,Excel Formula,我想获得excel函数中使用的单元格数。 例如,假设我有一个求和函数='CV'!D11+农夫!D11+‘县’!D11+Rt!D11+WT!D11+“国家”!D11 我需要一个函数,它能告诉我有多少个单元格被用来求和。在这种情况下是6。棘手的是,如果使用的单元格中有一个是空的,我不想计算。例如,如果Farmer表上的单元格D11为空,我不想将其计入总数。因此总数应为5。使用计数: =COUNT('CV'!D11,Farmer!D11,'County'!D11,Rt!D11,WT!D11,'Coun

我想获得excel函数中使用的单元格数。 例如,假设我有一个求和函数
='CV'!D11+农夫!D11+‘县’!D11+Rt!D11+WT!D11+“国家”!D11
我需要一个函数,它能告诉我有多少个单元格被用来求和。在这种情况下是6。棘手的是,如果使用的单元格中有一个是空的,我不想计算。例如,如果Farmer表上的单元格
D11
为空,我不想将其计入总数。因此总数应为5。

使用计数:

=COUNT('CV'!D11,Farmer!D11,'County'!D11,Rt!D11,WT!D11,'Country'!D11)

只有当单元格有一个数字时,它才会对单元格进行计数。在运行计算之前,您应该尝试将所有数据整理到一张表中。举个例子,我假设它的范围是
A1:A5
,然后可以使用以下方法添加各种情况的处理:

  • 获取非空单元格的计数(根据我的经验,
    ISBLANK
    函数不可信):{
    SUM(IF(LEN(A1:A5)>0,1,0))
    }
  • 获取这些单元格的总和:
    sum(A1:A5)
  • (必须使用Ctrl+Shift+Enter将公式作为数组公式输入,如果公式显示为{
    if(…)
    }并带有花括号,您将知道它是有效的。)

    由于在
    SUM
    函数中将空白/缺失值隐式处理为0,因此这种情况很简单。如果有其他验证,那么还必须为求和编写一个数组公式。例如,仅包括最小和最大阈值之间的数字(例如,如果要排除异常值):


    {
    SUM(如果(和(A1:A5>=yourMinValue,A1:A5
    }。

    如果我正确理解了您的问题,您希望能够熟练地计算公式中使用的单元格数量,在您的示例中,该公式是对6个不同位置的6个值进行求和

    我使用以下示例来演示我的解决方案:

    =A1+B1+C1+D1+E1+F1
    之和为
    10
    ,其中单元格
    C1
    中有
    0
    值,但单元格
    E1
    为空

    使用以下数组公式我能够计算出除
    0
    以外的数值的单元格数:

    =SUMPRODUCT(IFERROR(ABS(N(INDIRECT(TRIM(MID(SUBSTITUTE(RIGHT(FORMULATEXT(A3),LEN(FORMULATEXT(A3))-1),"+",REPT(" ",100)),100*ROW(INDIRECT("1:"&LEN(FORMULATEXT(A3))))-99,100)))))>0,0)*1)
    
    请注意,在公式栏中完成公式后,必须按Ctrl+Shift+Enter键,否则它们将无法正常工作

    逻辑是使用TRIM+MID+SUBSTITUTE+RIGHT+FORMULATEXT+REPT+ROW+INDIRECT的组合从原始公式中提取单元格地址,然后使用INDIRECT将单元格地址转换为存储在这些单元格中的值,然后使用IFERROR+ABS+N的组合找出是否存在f这些值不是
    0
    ,最后使用SUMPRODUCT将所有
    TRUE
    结果相加

    很明显,我的解决方案有几个局限性:

  • 如果您的实际公式不是严格按照
    A+B+C+D+E+F
    的形式,那么我的替换公式的部分将需要进一步修改
  • 公式将包含
    0
    的单元格视为空白,并且不包括在计数中

  • 如果您有任何问题,请告诉我。干杯:)

    是的。但是,我需要求和函数中使用的单元格计数。所以如果我对6个单元格求和,1为空,我需要显示一个5的计数,我不明白@KiraLightYagami因为这就是它要做的。使用和中相同的六个单元格,如果其中一个为空,它将返回
    5
    。为什么带有SUMIFS和COUNTIFS的数组公式与您的公式相同。这是一个问题吗?是的,有很多方法可以帮助你。我很好奇,为什么。为什么您会建议在较短的优化SUMIF和COUNTIF上使用缓慢的高开销和较长的数组公式?我真的很好奇。我想知道你是否知道为什么这更有效。我一直在努力学习。我同意有时候唯一的方法就是数组公式,我就是按照它们生活的。但是,当一种更简单、更有效的方法存在/起作用时,我个人更喜欢它们,因为它们更容易维护。谢谢你的解释。我个人也讨厌助手专栏。但是……从技术上讲,这不就是你要求OP在主控表上创建数据副本所要做的吗?如果业务逻辑发生变化,复制数据只会极大地帮助维护计算公式,因为复制
    {CV'!D11+Farmer!D11+'Country'!D11+Rt!D11+WT!D11+'Country'!D11}
    每一个公式和引用都会让你陷入疯狂;)我认为为了可扩展性/可维护性(即使用数组公式)而牺牲一些简洁性通常是合适的,这还包括划分(将分布式源数据复制到连续单元格范围)的开销。