Board logo

標題: [發問] 請問如何將資料進行截取後,再相加呢? [打印本頁]

作者: gaishutsusuru    時間: 2021-8-1 10:41     標題: 請問如何將資料進行截取後,再相加呢?

大家好,

想請教如何將資料先進行截取後,再相加呢? 說明如下:

[attach]33806[/attach]

由E4開始往下是資料,希望將這些資料進行處理:
E4:3~10  , 相減是7
E5:是0
E6:10~24,相減是14
E7:是7
ぴ其餘類推

希望將E4開始往下的值都相加:7+0+14+7+0+13+6=47填在E1 (而E1的公式該如何下呢?)
資料不只有7筆,但為了方便,僅列出7筆。

最後附上附件檔:[attach]33807[/attach]

想請大家協助提供想法,謝謝您們。
作者: hcm19522    時間: 2021-8-1 15:22

本帖最後由 hcm19522 於 2023-11-30 10:48 編輯

(輸入編號12079) google網址:https://hcm19522.blogspot.com/
作者: gaishutsusuru    時間: 2021-8-1 18:15

本帖最後由 gaishutsusuru 於 2021-8-1 18:22 編輯

回復 2# hcm19522


好厲害!
謝謝hcm大大的協助,公式可以用!

不過想再請教您,同樣的公式,放在google 試算表執行時,會顯示:系統計算「TEXT」時發現「0;-0;0;!0」格式無效

請問該如何解決這個問題呢? 謝謝您
作者: ML089    時間: 2021-8-1 22:12

=SUM(MMULT(--LEFT(RIGHT(SUBSTITUTE("0~"&E4:E10,"~",REPT(" ",9)),{18,9}),9),{-1;1}))
作者: gaishutsusuru    時間: 2021-8-1 22:25

回復 4# ML089


  謝謝您的協助,但好像若範圍改成E4:E20,則會出現錯誤。(似乎是因為如果儲存格是空白時,會不能執行)

請問該如何處理呢? 謝謝您。
作者: ML089    時間: 2021-8-1 23:25

回復 5# gaishutsusuru


    =SUM(MMULT(-LEFT(RIGHT(SUBSTITUTE(REPT(0,30)&E4:E20,"~",REPT(" ",15)),{30,15}),15),{1;-1}))
作者: gaishutsusuru    時間: 2021-8-2 09:32

回復 6# ML089


原來如此,謝謝您的幫忙,公式可以用!!
作者: hcm19522    時間: 2021-8-2 10:13

回復 3# gaishutsusuru


    {=SUM(IFERROR(LEFT(RIGHT(SUBSTITUTE("~"&B4:B99,"~",REPT(" ",9)),{18,9}),9)*{-1,1},))
作者: 准提部林    時間: 2021-8-2 12:57

若是計算箱數,
3~10 ... 應該是8箱
作者: 准提部林    時間: 2021-8-2 13:31

陣列
=SUM(ABS(INT(SUBSTITUTE(0&E4:E19,"~","."))-(0&MID(E4:E19,FIND("~",E4:E19&"~")+1,9))))
作者: gaishutsusuru    時間: 2021-8-3 06:59

回復 8# hcm19522


  
非常謝謝您抽空幫忙,公式可以用!
作者: gaishutsusuru    時間: 2021-8-3 06:59

回復 10# 准提部林


謝謝准提大大的幫忙和提供想法!
作者: Andy2483    時間: 2023-11-30 09:35

本帖最後由 Andy2483 於 2023-11-30 09:38 編輯

謝謝論壇,謝謝各位前輩
後學藉此帖應用剛剛學到的名稱 的建立與使用,學習方案如下,請各位前輩指教
執行結果:
[attach]37083[/attach]

建立的名稱:
[attach]37084[/attach]

Option Explicit
Sub TEST()
Dim Brr, V&, i&
'↑宣告變數
Range([E4], [E65536].End(3)).Name = "資料範圍"
'↑令指定儲存格範圍以 "資料範圍"字串為名 納入名稱裡
[E1].Name = "結果格"
'↑令[E1]儲存格以 "結果格"字串為名 納入名稱裡
Brr = Range("資料範圍")
'↑令Brr變數是二維陣列,以名稱為 "資料範圍"的參照儲存格值帶入陣列
For i = 1 To UBound(Brr)
'↑設順迴圈!i從1 到 Brr陣列縱向最大索引列號
   If Not Trim(Brr(i, 1)) Like "#*" Then GoTo i01
   '↑如果陣列值去除頭尾空白字元後的字串 不是以數字開頭,就跳到標示 i01位置
   V = V + Abs(Evaluate(Replace(Brr(i, 1), "~", "-")))
   '↑令V變數累加 計算的數值
i01: Next
Range("結果格") = V: MsgBox V
'↑令V變數值帶入 [E1]儲存格
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)