簡體   English   中英

在 Excel 中,我可以根據給定值是否在每一行中對一列單元格求和嗎?

[英]In Excel, can I sum a column of cells based on whether or not a given value is in each of the rows?

在 Excel 中,是否有數組公式或其他可以縮短下面公式的東西? 這只是一個經過 12 行的示例。 實際的公式會有數千行,這就是為什么我想找到一種方法來寫這個公式的時間要短得多。 除了下面的內容之外,我還考慮並嘗試了 SUMIF 和 SUMPRODUCT,但我還沒有找到一種方法來檢查多列中的指定值,然后對多行進行檢查,就像 FOR 循環那樣。 以下公式在單元格 J3 中。 我附上了電子表格示例的圖像。

電子表格

=SUM(
IF(ISNUMBER(MATCH($I$3,$B3:$E3,0)),$F3,0),
IF(ISNUMBER(MATCH($I$3,$B4:$E4,0)),$F4,0),
IF(ISNUMBER(MATCH($I$3,$B5:$E5,0)),$F5,0),
IF(ISNUMBER(MATCH($I$3,$B6:$E6,0)),$F6,0),
IF(ISNUMBER(MATCH($I$3,$B7:$E7,0)),$F7,0),
IF(ISNUMBER(MATCH($I$3,$B8:$E8,0)),$F8,0),
IF(ISNUMBER(MATCH($I$3,$B9:$E9,0)),$F9,0),
IF(ISNUMBER(MATCH($I$3,$B10:$E10,0)),$F10,0),
IF(ISNUMBER(MATCH($I$3,$B11:$E11,0)),$F11,0),
IF(ISNUMBER(MATCH($I$3,$B12:$E12,0)),$F12,0),
IF(ISNUMBER(MATCH($I$3,$B13:$E13,0)),$F13,0),
IF(ISNUMBER(MATCH($I$3,$B14:$E14,0)),$F14,0))

像這樣使用 SUMPRODUCT:

=SUMPRODUCT($F$3:$F$14*(MMULT(N($B$3:$E$14=I3),TRANSPOSE(COLUMN($B$3:$E$14)^0))>0))

這是一個數組公式,退出編輯模式時需要使用 Ctrl-Shift-Enter 而不是 Enter 確認。

在此處輸入圖片說明

改進的解決方案

=SUMPRODUCT($F$3:$F$14,CEILING(((($B$3:$B$14=$I3)+($C$3:$C$14=$I3)+($D$3:$D$14=$I3)+($E$3:$E$14=$I3))/4),1))

想法:4 是每周的行數。 使用天花板() 來規范化值而不是 int() n sqrt()。

擴展說明:只需添加另一個行條件並將行數調整為 4。


過去的解決方案(供參考)

=SUMPRODUCT($F$3:$F$14,INT(SQRT(INT(SQRT(($B$3:$B$14=$I3)+($C$3:$C$14=$I3)+($D$3:$D$14=$I3)))+($E$3:$E$14=$I3))))

應該做。

想法:雖然 $B$3:$B$14=$I3 部分正在創建一個 0 n 1 的數組,但 INT() n SQRT() 函數“強制”“+”總和變為 1,即使超過 1同月比賽。

請分享它是否有效/無效。 (:

p/s : (注意擴展)通過剖析 int() 和 sqrt() 函數,您可以看到 sqrt(3)=1.73205 、 sqrt(2)1.414213、 sqrt(1)=1 及其 int() 結果相同的值 (1) 。 因此,假設您想添加更多行,只需在一個 int(sqrt(__)) 函數中遞歸地使用“捆綁”3 行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM