- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
8#
發表於 2010-8-6 10:42
| 只看該作者
回復 7# kimbal
板主的公式=INDEX(Sheet1!$C$2:$G$8,MATCH(B2,Sheet1!$B$1:$B$8,1),MATCH(Sheet2!A2,Sheet1!C$1:G$1,0))會有差異
當B欄是80, 100,120,140,160,180 傳回的是下一列的值
當B欄是200時 則會超出範圍 =#REF!
回復 1# baomin
依1樓 SHEET2.JPG 圖表 所寫的自訂函數 請將程式碼複製到 一般模組中(Module)使用- '傳回 模數所對應到秒數的數據 範圍必需包含模數列 秒數列
- Function Ex(範圍 As Range, 模數 As String, 秒數 As Integer) As Integer
- Dim C As Range, Row%, Col%
- If Not 範圍.Rows(1).Find(模數, LookIn:=xlValues, LOOKAT:=xlWhole) Is Nothing Then
- Col = 範圍.Rows(1).Find(模數, LookIn:=xlValues, LOOKAT:=xlWhole).Column
- End If
- For Each C In 範圍.Columns(1).Cells
- If C.Row > 1 Then
- If Val(Split(C, "~")(0)) <= 秒數 And Val(Split(C, "~")(1)) >= 秒數 Then
- Row = C.Row
- Exit For
- End If
- End If
- Next
- If Row > 0 And Col > 0 Then Ex = Sheets(範圍.Parent.Name).Cells(Row, Col)
- End Function
複製代碼 |
|