我现在想了3天。有一个公式可以做到这一点,但我无法弄清楚。希望有人能帮助我。
我正在尝试根据以下几个条件对电子表格中的列进行求和:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="pull-right" style="padding:6px 8px; margin-right:-5px;">
<button style="display: block;" type="button" class="edit-checked edit-done btn btn-block btn-info"><i class="fa fa-check-square-o" aria-hidden="true"></i>Mark as "done"</button>
</li>
<input name="selected-products" class="selected-products" type="text">
<table class="productdetails-table table table-bordered table-hover " style="cursor:pointer">
<tbody>
<tr>
<th>Check</th>
<th>Status</th>
</tr>
<tr class="productdetails" data-product_id="93"><td><input class="check-parent" value="93" type="checkbox"></td><td class="status_result detail" ><span style="background-color: #368cbe" class="label label-primary">pending</span></td></tr>
<tr class="productdetails" data-product_id="92" data-table="productdetails"><td class="check close_sidebar"><input value="92" type="checkbox"></td><td class="status_result" ><span style="background-color: #368cbe" class="label label-primary">pending</span></td></tr>
我想根据以下条件对值列求和:
ID1 ID2 ID3 ID4 Value
SW A 1 X 4
SW B 2 Y 5
SE C 2 Y 6
SE A 2 X 3
NE A 0 X 2
SE A 1 X 3
根据上述条件,总和应为7
似乎ID1 = SW, SE
ID2 = A, C
ID3 = 1, 0
ID4 = X, Y
只能处理1个动态多重标准,一旦我加载了Sumif(s)
的标准,只有ID的SW被合计,公式排除了SE。 (在下面的公式中,ID4标准尚未包括在内)。
ID2
有没有办法可以处理多个条件,每个条件都是一个数组?谢谢!
答案 0 :(得分:3)
SUMIFS
可以处理最多两个条件列表,(假设您想要计算所有可能的组合),只要一个是&#34;行&#34;一个是&#34;列&#34; (或转换为如此),例如
=SUMPRODUCT(SUMIFS(Sumrange,Critrange1,{"x","y"},Critrange2,{"a";"b"}))
请注意{&#34; x&#34;,&#34; y&#34;}有一个逗号分隔符(一行),而{&#34; a&#34 ;;&#34; b&#34 ;}有分号(一列),它必须像那样
SUMIFS
生成一个包含4个值的数组(所有可能的组合),因此SUMPRODUCT
用于对这4个值求和。对于3个或更多标准列表,请使用SUMPRODUCT
和MATCH
,例如
=SUMPRODUCT(Sumrange,ISNUMBER(MATCH(Critrange1,{"SW","SE"},0)*MATCH(Critrange2,{"A","C"},0)*MATCH(Critrange3,{1,0},0)*MATCH(Critrange4,{"X","Y"},0))+0)
所有范围都是相同的尺寸
您在标准上的IF
函数会使这种情况复杂化,并且更难以适应这种类型的公式,但您可以满足这类公式,假设相关单元格为空白时所有非空白都是计数:
=SUMPRODUCT(((B7="")*(Critrange1<>"")+ISNUMBER(MATCH(Critrange1,{"SW","SE"},0))>0)*((B8="")*(Critrange2<>"")+ISNUMBER(MATCH(Critrange2,{"A","C"}0))>0)*((B9="")*(Critrange3<>"")+ISNUMBER(MATCH(Critrange3,{1,0}0))>0)*((B10="")*(Critrange4<>"")+ISNUMBER(MATCH(Critrange4,{"x","y"}0))>0))
请注意,此公式中的{1,0}匹配仅匹配数值。如果数据是文本格式,则需要添加引号,例如{"1","0"}
- 这在SUMIFS中的工作方式不同,您可以使用或不使用引号,它会同时计算文本和数字
在此版本中,您可以在MATCH
函数中使用逗号或分号,只要您在每个MATCH
中保持一致