iT邦幫忙

0

Excal VBA 篩選後,獲取篩選後的值

  • 分享至 

  • xImage

各位IT大

我想要利用VBA對欄位進行篩選
並對篩選的內容做計算(MAX, Min, Average, stdv ...等)
https://ithelp.ithome.com.tw/upload/images/20240116/20164482w4l5uutoBJ.png

我想利用For迴圈篩選不重複品項(已完成),然後可以計算所有相同品項的最大/最小/平均 甜度
與價錢。

厚厚 iT邦新手 1 級 ‧ 2024-01-16 15:21:19 檢舉
為什麼不用樞紐分析就好了?
neil524 iT邦新手 5 級 ‧ 2024-01-17 09:40:37 檢舉
因為這個只是範例,實際上我需要計算的item有上百個並且達到此功能後還需要運用在其他地方。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2024-01-17 07:56:21
最佳解答

解決這個問題有兩種方式
1.樞紐分析
2.VBA
既然你已經篩選不重複品項(已完成)
這代表你會取得每個(不重複)品項」的「名稱」
那就更進一步
計算出每個(不重複)品項的「數量」
等到可以算出數量
你就可以算出其他的數字了(最大值、最小值、平均值...)
/images/emoticon/emoticon13.gif

看更多先前的回應...收起先前的回應...
neil524 iT邦新手 5 級 ‧ 2024-01-17 09:42:32 檢舉

如果用比較土法煉鋼的方式應該是可以算得出來,但我在想有沒有像python的pandas可以更快計算篩出來的值。

Excel自身就有函數了
參考看看

neil524 iT邦新手 5 級 ‧ 2024-01-18 10:32:47 檢舉

你可能誤會我的意思了,我主要不是要計算excel有的公式,而是篩選後的row才要被計算。假設Min(B2:B7)答案會是0.5,但我篩選西瓜後答案應該要為0.8,但實際答案還是0.5。

neil524 iT邦新手 5 級 ‧ 2024-01-18 10:59:08 檢舉

最後我找到可行的方法了,解法如下:
Dim rng As Range

Set rng = Worksheets("工作表").Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row).SpecialCells(xlCellTypeVisible)

minvisble = Format(WorksheetFunction.Min(rng))

我要發表回答

立即登入回答