公式

时间:2017-01-14 19:12:22

标签: excel excel-formula

[2018-08-01:查看帖子底部附近的新资料。]

我刚刚遇到了一个Q-n-A here,其中包含了一个使用我以前从未见过的规范引用范围的函数示例。我稍微玩了一下,发现大多数Excel函数在使用这种引用时会返回一个值:

=SUM(A1:A5:C1:C5:E1:E2:F3:F4)

注意那里的所有“:”。

将光标放在公式栏中,突出显示那些非连续的单元格,就好像只会对这些单元格进行合计。然而,当我进行实验时,我发现它等同于这个公式:

=SUM(A1:F5)

然而,这个公式符合我的期望:

=SUM(A1:A5,C1:C5,E1:E2,F3:F4)

示例:我将范围A1:F5定义为:

--  A   B   C   D   E   F

1   1   2   3   4   5   6

2   2   4   6   8   10  12

3   3   6   9   12  15  18

4   4   8   12  16  20  24

5   5   10  15  20  25  30 

公式结果如下:

= SUM(A1:F5)为315

= SUM(A1:A5:C1:C5:E1:E2:F3:F4)为315

= SUM(A1:A5,C1:C5,E1:E2,F3:F4)为117

这说明了我的观点,即前两个似乎是等价的,而第三个“正确”的方法来定义一个不连续的范围会产生不同的结果(但我期望的结果)。

我在这里和互联网上的其他地方环顾四周,没有找到相关的讨论。

所以,我的问题:

  1. 是否有任何实际使用的奇数范围参考?
  2. 它真的是一种有效的范围参考吗?
  3. [新材料2018-08-01]

    @YowE3K想知道奇数数量的单元格会发生什么。这是我的例子:

    --  A   B   C  
    
    1   1   1   1   
    
    2   1   1   1   
    
    3   1   1   1   
    
    4   1   1   1   

    现在,在一个遥远的小区,我输入这个公式:

    =SUM(A1:B3:$C$2)
    

    然后,如果我拖动公式,它会产生有趣的结果,基本上3行,2列范围扩展到一直包含固定单元格的矩形范围。在这个例子中你可以获得的最小金额是3.试一试,看看。

    这显示了一些有用的东西,虽然我还没有提出具体的用途。

3 个答案:

答案 0 :(得分:1)

  1. 用逗号分隔时,越简单越好。如果您只选择了相关区域的左上角和右下角,请避免在 Excel 将创建的同一矩形块内引用子集。

  2. 不,没有太多实际练习可以保证这种额外的复杂性(当引用仅由冒号分隔的单元格时)。我阅读了有人建议使用的评论/建议回复,具体取决于数据结构。我建议个人在使用过于复杂的引用机制/策略之前寻求更好的数据格式/布局

  3. RE:用逗号分隔:是的,有许多实用且有效的练习正在以适当的方式进行管理

背景/细节

您提出了两个问题:即关于 1)“奇数引用”的有效性和 2) 潜在用途(释义)。

回复:有效性 - 回归基础,当您对整体求和时,您只是引用最左上角和最右下角的单元格 - Excel 会自动创建一个“边界”以包含由冒号分隔的任何和所有单元格。这个周长总是被构造成一个矩形(正方形是一种特殊类型的矩形)。您实际上可以“强制” Excel 最初将这些单元格分开,即第一次和第二次求和是相同的(参数上,并且就其结果而言):

Figure 1) Usual summation of a rectangular enclosed block

Figure 2) Identical variation depicting upper left and bottom right cells

可能最重要的含义/后果如下:

  • 无论有多少“子范围”、不同/重叠或其他,您都不能进行双重求和,前提是这些子范围以冒号分隔。例如,下面给出了与前 2 个数字完全相同的解决方案:

Figure 3) Union of cells within outer perimeter

然而,对于大多数实际应用,需要多子集引用(特别是在求和时)是罕见和奇怪的。当使用用逗号分隔的各种子集时,我可以设想这样的事情。

一般来说,公式化需要简约/简单(为了可审计性、可审查性、验证、计算速度、减少错误等)。

我相信编造/理解在数据表内(或跨)引用多个子集的场景是非常具有挑战性的,而使用图 1 中简单、直接的引用无法实现这种原因。

>

事实上,这需要高度定制的练习/结构来证明图 3 中所示的总和之类的东西的合理性,并且作为一名几乎每天都在审查 excel 模型的长期服务经理,我当然建议不要构建一个以这种方式引用的求和。

我考虑的越多,这种方式的多重引用就会阻碍功能。例如,使用图 1-2 中的引用样式允许对多个(相邻)工作表进行求和(我不是很喜欢,因为放置在工作表 4 和 2 之间的任何工作表都将包含在求和中,这可能会导致错误):

=SUM(Sheet4:Sheet2!A1:F5)

工作表 2、3 和 4 包含与您提供的值相同的值,如预期的那样产生 945 (=315 x 3)。为版本 3 执行此操作会导致 #Value! (甚至 Excel 都不喜欢它!)。

现在,就逗号分隔而言,这是完全不同的事情,但在幕后涉及类似的“机制”。 Excel 只会用冒号分隔“外围围栏”单元格,并且会创建几个“环围栏”矩形周长,每组(冒号分隔)单元格用逗号分隔一个。

这个“设置”有许多实际用途:它允许对不连续的单元格进行求和;可以在每个条件上放置不同的条件,例如这是一个将左侧所有偶数和右侧所有奇数相加的函数:

=SUM(A1:C5*(MOD(A1:C5,2)=0),D1:F5*(MOD(D1:F5,2)<>0))

这会产生 99(如果我没有混淆 mod 除数/操作数:)。 PS - 此时我意识到我错误地复制了您的值,并且无意中将行标签作为列包含在内。因此,99 基于与您显示的结果一致的“正确”值。

当然,我可以取左边和右边的总和(没有任何这样的条件,或者有一些也将满足的条件,例如 mod(a,b) < 0),其中每一半由逗号。当然,这将产生与对整个区域求和(如图 1-3 所示)完全相同的总体结果。

因此,当用逗号分隔时,Excel 将其视为与图 1-3 完全相同,但它仅针对“冒号”分隔的单元格的每个“子集”执行此操作。在这里,重复/重叠或省略的范围确实重要/有所作为。

当涉及到冒号或逗号时,没有“奇怪”的引用形式,有好的/最佳实践,但由于无限不同的可能性/数据表结构、倡议和用途/模型等/毫无疑问将< em>some 用于复杂形式的简单求和(用冒号分隔时);我认为这些很少见/相差甚远,如果可以避免,建议不要进行复杂的设置。

但是,我认为具有 2/3 或更多子集的类似构造的更大应用/用途由逗号分隔。事实上,这有效地实现了与状态栏消息相同的结果(汇总统计选择为“显示”,即在右键单击并选择它之后):

Figure 4

答案 1 :(得分:0)

  1. 该奇数范围引用是否有实际用途? <-是的。根据您正在处理的数据结构,您可能无权在工作表中添加额外的行/列。

  2. 它真的是一种有效的范围参考吗? <---既然可以,是的。不论是否正确记录。祝贺您的发现。我也在学习新事物。 (:

答案 2 :(得分:0)

我发现一种可能的用途是INDIRECT()可以与此语法结合使用。例如:

=SUM(INDIRECT("a"&H11&":a"&I11):A1:C1:C4:D4:F1)

其中单元格H11和T11的值等于该行。这允许具有最小范围的可变范围。

例如,如果我想要一个可以根据用户输入进行更新的范围,但包含A和B列以及第1和2行,则可以使用以下内容:

=SUM(INDIRECT(H11&":"&I11):A1:A2:A1:B1)

感谢分享,如果以后有机会在实时公式中使用它,我会进行更新。