【问题标题】:How to skip every nth row in Excel column Sum如何跳过Excel列Sum中的每n行
【发布时间】:2017-04-14 03:34:10
【问题描述】:

我有一张从互联网上复制并粘贴到 Excel 中的表格。然而,粘贴的数据并不干净。我想从列中添加第 1、4、7、10... 行,同时跳过第 2、3、5、6、8、9... 行。而且我希望该解决方案位于一个单元格中,即不添加辅助列。

这是我的demo table 的快照。希望这能让您了解我正在努力实现的目标。

我在互联网上搜索过这个question on SO。但我就是无法修改公式来绕过我的解决方案。非常感谢任何帮助。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    看到您的列中有标题。 在需要总和值的所需单元格中输入以下公式

    =SUMPRODUCT((A2:A13),(--(MOD(ROW(A2:A13),3)=2)))
    

    解释:

    1. MOD(ROW(A2:A13),3)=2 检查 row_number %% 3 = 2 的行并返回一个布尔数组(每个匹配项为 TRUE 或 FALSE)

    输出:=SUMPRODUCT((A2:A13),(--({TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE})))

    1. 双重否定将布尔值转换为数字 1(TRUE) 或 0(FALSE)。

    输出:=SUMPRODUCT((A2:A13),({1;0;0;1;0;0;1;0;0;1;0;0}))

    1. SUMPRODUCT 将上述数组与A2:A16 的数据数组相乘,再相加结果。

    【讨论】:

    • 这是一个很好的答案。
    【解决方案2】:

    使用 sumproduct 怎么样?此功能用途广泛,应该可以解决问题。这个想法是双负号将布尔值转换为一或零,因此您的错误元素(也就是 n%3 1 的任何 n)乘以零,因此它们实际上被排除在您的总和之外。

    =SUMPRODUCT(--(MOD(ROW(A1:A16), 3)=1), A1:A16)
    

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      相关资源
      最近更新 更多