Board logo

標題: [發問] 篩選後加總 [打印本頁]

作者: 0939875756    時間: 2010-11-22 18:31     標題: 篩選後加總

請問如何篩選出,材質=A36,規格為RH為開頭的總重,並把符合材質和規格的總重加總呢???


[attach]3702[/attach]

[attach]3701[/attach]
作者: oobird    時間: 2010-11-22 18:46

J1公式:=SUBTOTAL(9,H:H)
自動篩選,材質選A36,規格選自訂,開頭以RH
作者: 0939875756    時間: 2010-11-22 19:24

除了自動篩選的方法外還有其它的嗎???
作者: oobird    時間: 2010-11-22 20:23

你的問題是"篩選後加總", 不想要自動篩選還有進階篩選呀!
作者: 0939875756    時間: 2010-11-22 21:17

本帖最後由 Hsieh 於 2010-11-22 21:53 編輯

那是否能用sumif的方式做出來呢???

因為我只會用{=SUM(IF($E$2:$E$23=E30,IF($D$2:$D$23=F30,$H$2:$H$23,0),0))}

把符合A36 和 RH300X300X10X15X7754 這2個值算出來

是否能把符合A36和以RH開頭的總值以SUMIF的方式算出來呢??
作者: oobird    時間: 2010-11-22 21:49

本帖最後由 oobird 於 2010-11-22 21:53 編輯

用公式可用sumproduct或lookup運算,雙條件不能用sumif.
你用的是sum陣列,也是可以的,自己做吧!
不過不建議,看這帖:http://forum.twbts.com/thread-1962-1-1.html
作者: Hsieh    時間: 2010-11-22 21:56

本帖最後由 Hsieh 於 2010-11-22 21:59 編輯

2007版有SUMIFS
=SUMIFS(H:H,D:D,"RH*",E:E,"=A36")
其實用自動篩選就成啦
[attach]3706[/attach]
作者: gong    時間: 2010-11-22 22:39

sumif()用在雙條件上以上,可以加一輔助欄
輔助x欄=a1&b1&c1&d1
=sumif(x:x,...,...)
作者: aa7551    時間: 2010-12-8 22:16

gong大大,雙條件加輔助x欄,可否增加說明,不是很了解意思
作者: Hsieh    時間: 2010-12-8 23:08

回復 9# aa7551


    不指定用甚麼函數試試
=SUMPRODUCT((LEFT($D$2:$D$23,2)="RH")*($E$2:$E$23="A36"),$H$2:$H$23)

SUMIF加輔助欄
如:J2=LEFT(D2,2)&E2向下複製
=SUMIF(J2:J23,"RHA36",H2:H23)
作者: aa7551    時間: 2010-12-9 18:53

受教了,沒有合用的工具,想辦法組合....思考方向太侷限,要加強學習
作者: Andy2483    時間: 2023-3-27 14:42

本帖最後由 Andy2483 於 2023-3-27 14:49 編輯

回復 1# 0939875756


    謝謝前輩發表此主題與範例
後學藉此主題測試字典的特性,學習到很多知識,後學VBA的解決方案如下,請前輩參考
謝謝論壇,謝謝各位前輩

執行前:
[attach]36042[/attach]

執行結果:
[attach]36043[/attach]

'字典裡的陣列需要變數盛裝出來編輯,再放回字典,才有效
Option Explicit
Sub TEST()
Dim Y, i&, j&, 陣列()
Set Y = CreateObject("Scripting.Dictionary")
Set Y(1) = Range([1B!I1], [1B!A1].End(xlDown))
Y(2) = Y(1): Y(5) = 1: 陣列 = Y(2)
For i = 2 To UBound(陣列)
   If 陣列(i, 4) Like "RH*" And 陣列(i, 5) = "A36" Then
      Y(5) = Y(5) + 1
      For j = 1 To UBound(陣列, 2)
         陣列(Y(5), j) = 陣列(i, j)
      Next
      Y(0) = Y(0) + 陣列(Y(5), 8)
   End If
Next
Y(2) = 陣列
Workbooks.Add
[A1].Resize(Y(5), UBound(Y(2), 2)) = Y(2)
Cells(Y(5) + 1, 3) = "小計"
Cells(Y(5) + 1, 8) = Y(0)
Cells.Columns.AutoFit
Set Y = Nothing: Erase 陣列
End Sub




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