Excel formula 忽略excel求和公式中的隐藏列

Excel formula 忽略excel求和公式中的隐藏列,excel-formula,Excel Formula,我基本上想忽略excel中的随机列。是否有方法检测列是否隐藏,然后在公式中不包含该列 举个例子 F1=B1+C1+E1(忽略D列) 但是第二天F列可能需要=B+D+E 有没有办法简单地实现这一点?我见过一些忽略特定列的公式,但没有任何动态的公式可以检测隐藏的数据,然后不包含它。谢谢 范例 因此,基本上,如果我隐藏Greg的列,我希望所有行的总数反映出这一变化。因此,当他的列被隐藏时,E2将等于8,而不是12 这里的第二幅图显示了公式没有按预期工作方法1:使用单元格和间接 细胞功能 允许您查找

我基本上想忽略excel中的随机列。是否有方法检测列是否隐藏,然后在公式中不包含该列

举个例子 F1=B1+C1+E1(忽略D列) 但是第二天F列可能需要=B+D+E

有没有办法简单地实现这一点?我见过一些忽略特定列的公式,但没有任何动态的公式可以检测隐藏的数据,然后不包含它。谢谢

范例

因此,基本上,如果我隐藏Greg的列,我希望所有行的总数反映出这一变化。因此,当他的列被隐藏时,E2将等于8,而不是12


这里的第二幅图显示了公式没有按预期工作

方法1:使用
单元格
间接

细胞功能

允许您查找单元格的属性,例如宽度:

=CELL("width")
间接功能

允许您通过字符串引用单元格,例如获取A1的值

=INDIRECT("A1")

取所有值的和(例如E2=B2+C2+D2),然后使用单元格确定每个单元格宽度是否为零,然后从和中取出


方法2:使用
IF
CELL

或者,您可以使用和单元格函数,例如

E1 = IF(CELL("width", B2) = 0, 0, B2)
   + IF(CELL("width", C2) = 0, 0, C2)
   + IF(CELL("width", D2) = 0, 0, D2)
我在“Excel for Office 365”中发现,Wai Ha Lee公式溢出到相邻的单元格中,因为=单元格(“宽度”)返回2个值(宽度和布尔值)的数组

这种“溢出”是一种错误,可以通过使用索引仅使用数组中的第一个值来避免。 以下内容适用于我在Office 365中的工作:

=如果(索引(单元格(“宽度”,B2),1)=0,0,B2) +如果(索引(单元格(“宽度”,C2),1)=0,0,C2) +如果(索引(单元格(“宽度”,D2),1)=0,0,D2)


注意:使用“组”隐藏列会自动重新计算公式,但在我的版本中,手动隐藏列不会触发公式的重新计算(需要手动F9触发器或其他单元格更改)。

如果您不受数据结构的限制,
SUBTOTAL
函数提供了排除隐藏行的功能(但不幸的是,它对列不起作用)您好,我想让您知道,您缺少公式(如上图所示)中的
IF
函数,@WaiHaLee在下面的回答中提到了这一点。每次隐藏列时都需要重新计算公式。您可以使用
F9
进行此操作。我认为怀哈雷的回答很好,对我来说很好。谢谢!我在我的原始帖子中添加了一个示例图片链接,下面的一段显示了我在寻找什么。嗨@bkoverflow,我已经更新了我的答案,包括一个适用于你的示例的可复制答案。很好的解决方案,+1。您可以将方法2缩短为
=(单元格(“宽度”,B2)>0)*B2+(单元格(“宽度”,C2)>0)*C2+(单元格(“宽度”,D2)>0)*D2
,但可能会丢失可读性。@RickHitchcock,非常感谢您的反馈和+1。我不认为这妨碍了易读性,但我可能会留下我的答案,因为它是明确的。感谢所有你们的帮助,伙计们!!!不幸的是,这两个函数都没有正确地忽略该列。我在原来的帖子中添加了另一个屏幕截图,显示了隐藏了D列的方法2。如您所见,E列中的总计仍在将D列中的值添加到公式中。
E1 = IF(CELL("width", B2) = 0, 0, B2)
   + IF(CELL("width", C2) = 0, 0, C2)
   + IF(CELL("width", D2) = 0, 0, D2)