我的数据分为以下几列:
Runs RunsAfter Switch New 0 2 1 0 2 0 1 2 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0
我希望excel通过获取每个单元格并对列的其余部分求和直到“转换”列中的1为1来对“运行”列求和。然后它应该再次开始计算,直到另一个Switch。所有这些输出都应该放在New列中。结果应该看起来像RunsAfter列,我目前正在手工计算。我会继续这样做,但数据集会变得太大而无法继续这样做。
我已经检查了类似的问题,但是找不到我正在寻找的东西。如果我在其他地方错过了答案,请告诉我。
答案 0 :(得分:0)
如果我理解正确,我认为你想使用匹配公式的组合来找到下一个“开关”和间接公式来定义要求和的范围。我想不出一个简单的方法来做到这一点。
这假设你的标题在第1行,你的列是Runs(A),RunsAfter(B),Switch(C),结果是D.我在你的最后一行使用了100,但你会如果你有更多的行,需要改变它。这就是我在D2中所做的:
要查找Switch为1的下一行: MATCH(1,C3:$ C $ 100,0)+ ROW()
我还包括iferror,以便在最后一次切换后不使行中断: IFERROR(MATCH(1,C3:$ C $ 100,0)+ ROW() - 1100)
我将此作为间接公式的一部分,以告诉它总结的范围:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>set-custom-arg-line</id>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
def argLine = project.properties['argLine'];
if (argLine == null) {
argLine = "";
}
project.properties.argLine = argLine;
</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<argLine>-Xmx1024m ${argLine}</argLine>
</configuration>
</plugin>
因此对于D2,它是从A2到下一个开关之前的行的总和,在本例中是第8行。您应该能够使用这些锚点从D2向下拖动它。