忽略excel sum公式中的隐藏列

时间:2015-02-18 17:23:09

标签: excel-formula

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

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

有没有办法简单地实现这个目标?我已经看到一些忽略特定列的公式,但没有动态可以检测隐藏数据然后不包含它。谢谢!

实施例

enter image description here

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

Formula not working correctly

此处的第二张图片显示公式未按预期工作

2 个答案:

答案 0 :(得分:3)

方法1:使用CELLINDIRECT

细胞功能

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

=CELL("width")

间接功能

Indirect function允许您通过字符串引用单元格,例如得到A1的值,

=INDIRECT("A1")

=INDIRECT("R1C1", true)

获取所有内容的总和(例如E2 = B2 + C2 + D2),然后使用CELL查找每个单元格宽度是否为零,然后将其从总和中取出。


方法2:使用IFCELL

或者,您可以使用IF function和CELL功能,例如

E1 = IF(CELL("width", B2) = 0, 0, B2)
   + IF(CELL("width", C2) = 0, 0, C2)
   + IF(CELL("width", D2) = 0, 0, D2)

答案 1 :(得分:-1)

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

此“溢出”是new feature,可以通过使用INDEX仅使用数组中的第一个值来避免。 以下内容适用于Office 365:

= IF(INDEX(CELL(“ width”,B2),1)= 0,0,B2) + IF(INDEX(CELL(“ width”,C2),1)= 0,0,C2) + IF(INDEX(CELL(“ width”,D2),1)= 0,0,D2)

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