Board logo

標題: [發問] 搜尋符合條件的最小值及最大值 [打印本頁]

作者: PJChen    時間: 2012-11-17 10:13     標題: 搜尋符合條件的最小值及最大值

請教各位大大,
以下資料為sheet 1,若我在sheet 2以INV為主作搜尋對照,如何抓取BCM的最小值?(它有數字及文字)
例如:sheet 2的A欄位是INV,B欄位是BCM最小值,C欄位是BCM最大值
CI12-002  最小值我希望找到的是B2= 120001,最大值是C2=120362-2

INV                         BCM
CI12-002        120351
CI12-008        120352
CI12-003        120353
CI12-004        120354
CI12-005        120355
CI12-002        120358-3
CI12-001        120362-1
CI12-002        120362-2
CI12-002        120001
CI12-002        120014-1A
作者: Hsieh    時間: 2012-11-18 11:30

回復 1# PJChen

文字與數字比較大小,內建函數無法達成
[attach]13189[/attach]
作者: c_c_lai    時間: 2012-11-18 17:42

回復 2# Hsieh
回復 1# PJChen
不好意思,借用 Hsieh 版大的語法稍加修飾:
  1. Sub Test()
  2.     Dim ans As Variant
  3.    
  4.     ans = RankData(Range("B2:B11"), True)
  5.     MsgBox "最大值為 " & ans
  6.     ans = RankData(Range("B2:B11"), False)
  7.     MsgBox "最小值為 " & ans
  8. End Sub

  9. Function RankData(Rng As Range, asc As Boolean) As Variant
  10.     Dim rn As Variant
  11.    
  12.     For Each rn In Rng
  13.         If asc = True Then
  14.             RankData = IIf(RankData = "", rn, IIf(rn > RankData, rn, RankData))
  15.         Else
  16.             RankData = IIf(RankData = "", rn, IIf(rn < RankData, rn, RankData))
  17.         End If
  18.     Next
  19. End Function
複製代碼





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