[英]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))
如果您使用sum
或sumproduct
,我看不出有什么區別,雖然最大值是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.