簡體   English   中英

復雜的嵌套Excel函數

[英]Complicated Nested Excel Function

我正在使用Excel中的一個函數,如果該列之前的列包含單詞“ pre”,該函數將允許我對列進行求和

這是一個模擬電子表格:

                   Grade          Points Possible

C++ Pre Test         20                   20
Homework Week 1      30                   30
C++ Test             90                  100

現在,我想將SUMIF()函數與嵌套的SEARCH()函數一起使用,該函數將檢查A2到A4單元格,如果找到單詞“ pre”,它將對B列中的相應數字求和。

這是我到目前為止似乎無法正常工作的內容:

=SUMIF(A2:A4,SEARCH("pre",A2:A4),B2:B4) 

我打算說的是:“如果在a2:a4范圍內的任何單元格中找到單詞'pre',請從b列中其對應的等級中提取該值”。 我希望模擬電子表格的輸出為“ 20”,因為pre僅出現一次。

也許VB宏會井然有序?

編輯:經過進一步研究,也許LOOKUP()函數可能最適合,因為SEARCH()用於從它正在搜索的列中返回一個值。

=SUMIF(A2:A4, "=*pre*",B2:B4)

上面的方法不起作用。 如果數組大於2(我知道是),那么您可以將其擴展為sumproduct函數的最多30個迭代

=SUMPRODUCT(B2*IF(ISERROR(SEARCH(" Pre ",A2)),0,1),B3*IF(ISERROR(SEARCH(" Pre ",A3)),0,1))

如果您使用sumsumproduct ,我看不出有什么區別,雖然最大值是30,但您只需要sumproduct =SUM() + SUM()就可以得到60。

另一種選擇是使用C列並將其插入C1 ,然后向下復制

=IF(ISERROR(SEARCH(" Pre ",A1)),"",B1)

並在末尾求和。

正如您所提到的,下一個選項是-具有用於i的滾動總和的宏,下一個i

分解你的公式。

=Search("Pre",A2)返回5-我認為您不希望在sumif中使用它。

嘗試以下方法:

創建一個新的列D ,該列在A列中查找單詞“ pre”。 也許類似=iferror(Search("Pre",A2),1,0)) [如果該單元格中存在Pre,則返回1,否則返回0]

現在sumproduct(B:B,D:D)應該給您在預測試中獲得的積分,而sumproduct(C:C,D:D)應該給您可能的積分。

暫無
暫無

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

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