Joa*_*ses 5 excel excel-formula
我试图创建一个动态 Excel 公式,当另一行中的值是 1 后跟 0 时,该公式对一行中的值进行求和。如果在最后一个 0 之后有一个 1,则再次求和,直到达到另一个 1。

如图所示,F6 中的第一个值必须是 323(202+47+74),然后出现 1,但下面没有 0,因此该值保持不变(1997)。然后另一个 1 后面跟着两个 0,形成 9 (4+3+2),依此类推。
这是另一种选择,
\n\n\xe2\x80\xa2 单元格中使用的公式F2
=LET(\na,B2:B13,\nb,C2:C13,\nc,SCAN(0,a,LAMBDA(x,y,x+y)),\nd,UNIQUE(c),\nIF(a=0,"",INDEX(MMULT(N(TOROW(c)=d),b),XMATCH(c,d))))\nRun Code Online (Sandbox Code Playgroud)\n注意:请参阅下面每个变量的作用:
\n\xe2\x80\xa2 首先,我们采用两个范围即B2:B13&C2:C13并将它们分别定义为a& b。
\xe2\x80\xa2 接下来,我们使用SCAN()函数返回一个数组,其初始值会迭代0序列中的每个值,其中使用. 返回值被指定为axyLAMBDA()c。
SCAN(0,a,LAMBDA(x,y,x+y))\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa2 现在,我们使用UNIQUE()函数来删除任何重复项c
=LET(\na,B2:B13,\nb,C2:C13,\nc,SCAN(0,a,LAMBDA(x,y,x+y)),\nd,UNIQUE(c),\nd)\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa2 接下来,我们使用MMULT().
N(TOROW(c)=d)\nRun Code Online (Sandbox Code Playgroud)\n上面将数组中的每个值c与数组中的每个值进行比较d,并返回一个BOOLEAN相同大小的数组,其中 if it equal then TRUEelse FALSE。然后MMULT()执行矩阵乘法,得到的行数和列数与b将 的每个值BOOLEAN与对应的乘积相加的行数和列数相同b。
MMULT(N(TOROW(c)=d),b)\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa2 最后,我们使用 anIF()和INDEX()wtihXMATCH()根据需要返回所需的输出。
==> 该XMATCH()函数用于查找c数组中每个值的位置d,该数组用于INDEX()返回上述矩阵乘法的相应值。最后将其包装在IF()函数中,该函数检查数组中是否有任何值a等于0,然后返回空,否则返回使用INDEX()&返回的值XMATCH()。
当然,您不必向下填充,因为它会动态溢出。
\n小智 1
您可以使用(隐藏的)额外列轻松完成此操作。将运行总计保留在隐藏列中,并且仅当 [0, 1] 列为 1 时才显示该运行总计。
\n请注意,在以后的帖子中,我们会将数据提供为我们可以复制的表格,而不是屏幕截图。
\n匹配数据中隐藏列第 3 行的行(F 是此处的隐藏列):
\n=IF(B3=1, IF(B4 = 1, C3, D4+C3), IF(B4 = 1, C3, C3+D4))\nRun Code Online (Sandbox Code Playgroud)\n将其复制到 F 列下方。
\n在显示列的第 3 行(此处为 G):
\n=IF(B3 = 1, F3, "")\nRun Code Online (Sandbox Code Playgroud)\n当然,将其复制到 G 列中。
\n| \xc2\xa0 | A | 乙 | C | G |
|---|---|---|---|---|
| 1 | \xc2\xa0 | \xc2\xa0 | \xc2\xa0 | \xc2\xa0 |
| 2 | \xc2\xa0 | \xc2\xa0 | \xc2\xa0 | \xc2\xa0 |
| 3 | \xc2\xa0 | 1 | 第202章 | 323 |
| 4 | \xc2\xa0 | 0 | 47 | \xc2\xa0 |
| 5 | \xc2\xa0 | 0 | 74 | \xc2\xa0 |
| 6 | \xc2\xa0 | 1 | 1997年 | 1997年 |
| 7 | \xc2\xa0 | 1 | 4 | 9 |
| 8 | \xc2\xa0 | 0 | 3 | \xc2\xa0 |
| 9 | \xc2\xa0 | 0 | 2 | \xc2\xa0 |
| 10 | \xc2\xa0 | 1 | 2 | 2 |
| 11 | \xc2\xa0 | 1 | 5 | 5 |
| 12 | \xc2\xa0 | 1 | 1981年 | 1981年 |
| 13 | \xc2\xa0 | 1 | 3 | 11 |
| 14 | \xc2\xa0 | 0 | 8 | \xc2\xa0 |