儲存格中的複數求和值

儲存格中的複數求和值

假設我有公式結果+10+5+1+40以文字形式傳回 this 。然後我想將這些數字相加得到總數。

結果可以是任意數量的值,例如+2+5+10+5+7+1+8

如果有幫助的話,原始資料集是這樣的S10_S5_S1_S40或這樣的E_E_S2_S5。我已經刪除了除了 S 旁邊的數字之外的所有內容,這是我想要添加的內容。

最後,我在超級用戶上發帖,因為我想盡可能避免使用 VBA。

更新

透過這個公式: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(D25,"E",""),"_",""),"S","=",1),"S","+")

我已經把它歸結為這個=10+5+1+40,其中 D25 = ... 但這實際上與前面S10_S5_S1_S40有一個相同,我猜!+

答案1

假設您的範例中只有 1 或 2 位數字,則此「數組公式」將對 D25 中的所有「S」數字求和

=SUM(IF(MID(D25,ROW(INDIRECT("1:"&LEN(D25))),1)="S",(0&SUBSTITUTE(MID(D25,ROW(INDIRECT("1:"&LEN(D25)))+1,2),"_",""))+0))

確認與CTRL+SHIFT+ENTER

所以如果 D25 包含,S10_S5_S1_S40結果將為 56

答案2

沒有工作表公式可以做到這一點。您可以使用舊的 Excel 4 巨集函數 EVALUATE(),但它只能在命名範圍中使用。

因此,如果 D 列中有數據,且 E 列中有替代公式,則選擇 F25 並使用名稱管理器建立新的命名公式。將其命名為“EvaluateMe”並讓它引用

=EVALUATE(Sheet1!E25)

然後,輸入

=EvaluateMe 

進入儲存格 F25,結果將顯示。此命名範圍使用相對引用,如果定義活動儲存格時位於 F25 中,它將始終嘗試直接評估左側的儲存格。

答案3

這源自於巴里「棒極了」的回答。下面的“數組公式”

=SUM(IF(MID(D25,ROW(INDIRECT("1:"&LEN(D25))),1)="S",MID(D25,ROW(INDIRECT("1:"&LEN(D25)))+1,IFERROR(FIND("_",D25,ROW(INDIRECT("1:"&LEN(D25)))+1),LEN(D25)+1)-(ROW(INDIRECT("1:"&LEN(D25)))+1))+0))

(以Ctrl+ Shift+輸入Enter)將新增儲存格中的所有「S」數字D25,無論長度為何;因此,如果D25包含“S10_S5_S1_S240”,則上述公式將為您提供結果 256。

我還沒有對此進行詳盡的測試。我自己可能會在周一早上發現問題。 :)

相關內容