返回列表 上一主題 發帖

DDE動態資料如何使用HLOOKUP

DDE動態資料如何使用HLOOKUP

DDE動態資料裡,每一段時間的分時記錄,分別計算出MAX值,
但有辦法查找所對應的儲存格嗎?

試了LOOKUP、OFFSET、MATCH,都沒辦法成功,
好像要純數字或文字才能查找,裡面有寫公式的話,不知道有沒有辦法....




DDE_LOOKUP.zip (67.71 KB)

回復 1# corcovado886


    直接寫在vba裡面可以嗎?
  1. Sub 自動記錄()
  2. If uMode = 0 Then Exit Sub
  3. If Time > TimeValue(EndTime) Then '收盤時間以後不執行
  4.     Sht1.[W4] = "已過收盤"
  5.     uMode = 0
  6.     Exit Sub
  7. End If
  8. Sht1.Range("W2") = Time '當前時間(時間碼表)
  9. '----------------------------------------------------------
  10. '每1分鐘記錄,5分鐘則改為 Mod 5
  11. If Second(Time) Mod 3 = 0 Then
  12.    xRow = Sht1.Range("A65536").End(xlUp).Row + 1
  13.    If xRow < 11 Then xRow = 11
  14.    Sht1.Range("A" & xRow & ":V" & xRow).Value = Sht1.Range("A2:V2").Value
  15.    Sht1.Range("W" & xRow).Value = Time
  16.    Mx = Application.Max(Sht1.Range("a" & xRow & ":v" & xRow))
  17.    Sht1.Range("Y" & xRow).Value = Mx
  18.    Ans = Sht1.Range("a" & xRow & ":v" & xRow).Find(Mx, , , xlWhole).Address
  19.    Sht1.Range("Z" & xRow).Value = Range(Ans).Column
  20.    '------------------------------------------------
  21.    If ActiveSheet.Name = Sht1.Name And xRow > 20 Then
  22.       ActiveWindow.ScrollRow = xRow - 12 '讓最新資料保持在可見視窗中
  23.    End If
  24.    ThisWorkbook.Save   '存檔
  25. End If
  26. Application.OnTime Now + TimeValue("00:00:01"), "自動記錄"   '每一秒遞迴一次
  27. End Sub
複製代碼

TOP

Z11:
=IF(COUNT(A11:V11),MATCH(Y11,A11:V11,),"")

TOP

硬要用HLOOKUP  參考
Z11=HLOOKUP(Y11,CHOOSE({1;2},OFFSET(A$10,ROW(A1),,,22),A$10:V$10),2,)

TOP

回復 4# hcm19522
感謝大家的留言,版上好多excel大師 !
好像hcm19522 大大的才是正解,因為A10:V10 不一定是照遞增順序排列。

如果要在AA11儲存格加上Min值呢?
因為公式有點複雜,不知道怎麼將下列的Max值改成最小值
=HLOOKUP(Y11,CHOOSE({1;2},OFFSET(A$10,ROW(A1),,,22),A$10:V$10),2,)

TOP

回復 5# corcovado886
  後來自己亂試解決了,在AA欄另外計算Min值,
然後將同樣的公式複製到AB欄,往下一拉就計算出對應值了。

但這是預先在每一列寫好公式,有沒有辦法固定顯示在一個欄位呢? (例如 儲存格Y9)

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題