返回列表 上一主題 發帖

請問大大出現重複的值要怎麼抓相對應的值

請問大大出現重複的值要怎麼抓相對應的值

本帖最後由 藍天麗池 於 2013-7-8 21:27 編輯

A                B              C                            D            E
84558        7956        1        7951.886961        845
84558        7957        1        7951.889495        845
84558        7956        1        7951.89153          845
84558        7956        1        7951.893564        845
84558        7957        3        7951.901137        845
84558        7956        1        7951.903162        845
84559        7957        1        7951.905679        845
84559        7957        1        7951.908193        845
84559        7957        9        7951.930713        845
84559        7957        1        7951.933202        845
84600        7957        3        7951.940657        846
84600        7957        1        7951.943137        846
84600        7957        1        7951.945615        846
84600        7957        5        7951.957967        846
84601        7957        4        7951.967805        846
84601        7957        1        7951.970258        846
84601        7957        2        7951.975158        846
84601        7958        2        7951.981022        846

請問大大,我要怎麼寫VBA當E欄出現846時抓上一個845所對應左邊的值(7951.933202)

藍天
你的Data是否為Excel  a,b,c,d,e,f,...欄(已建立好)之情形下,
只要整合找出不同的 e 欄value 對應值為上ㄧ列d欄
若是如此,用VBA才是王道

TOP

回復 12# 藍天麗池
程式碼依你1#的資料所寫試試看
  1. Option Explicit
  2. Sub Ex()
  3.    'Dim(關鍵字) 宣告變數為程式私用的變數
  4.    Dim N As String, Rng As Range        'String   字串型態  'Range(範圍)型態為物件
  5.            
  6.     With Sheets("資料表")                                   '修正為正確的工作表名稱
  7.         '.[E:E] = .Range("E:E")                             'Sheets("資料表")的 E 欄
  8.         'Application.Max(.[E:E]) ->傳回E欗 最大值
  9.         'Application.Min (.[E:E])->傳回E欗 最小值
  10.         'N = InputBox("輸入數值")  '不預設數值 用此程式碼
  11.             'InputBox 函數  顯示一對話方塊來做為提示,等使用者輸入文字或按下按鈕,並傳回包含文字方塊內容的String。
  12.         N = InputBox("輸入數值", , Application.Max(.[E:E]))
  13.          Set Rng = .Range("E:E").Find(What:=N, After:=Range("E1"), LookAt:=xlWhole)   'SET(設立物件變數)的關鍵字
  14.         ' 請詳看 VBA Find方法, InputBox 函數 的說明
  15.         If Not Rng Is Nothing Then                       'Nothing: Find 找不到 N(的數值)
  16.             If Rng.Row = 2 Then                          '當Rng(物件)的列號是 2
  17.                Set Rng = Rng.Offset(, -1)                '物件:原物件  列位(  不動  ),欗位(左移一欄)
  18.             Else
  19.                 Set Rng = Rng.Offset(-1, -1)             '物件:原物件  列位(上升一列),欗位(左移一欄)
  20.             End If
  21.                 Rng.Select
  22.                 MsgBox Rng.Address
  23.         End If
  24.     End With
  25. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 14# 藍天麗池

upload your Excle file
ss

TOP

回復 13# sunnyso


    大大你這個方法也不行ㄟ,感謝大大

TOP

回復 2# kimbal


    大大你的兩個方法都不行,第一個方法由於E欄是公式所以MATCH找不到
                                                    第二個方式VBA出現錯誤1004(無法取得類別worksheetfunction的match屬性)
    請問大大以上問題要如何解決呢??

TOP

F2 的公式
=OFFSET(D1,MATCH(846,E:E,0)-2,0)

VBA:
  1. On Error Resume Next
  2. [F2] = [D1].Offset(Application.WorksheetFunction.Match(846, Columns(5), 0) - 2)
複製代碼
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

回復 9# sunnyso


    如果是用DMAX是不行的,我試過了

TOP

回復 9# sunnyso


    大大,小弟還無法下載附件,可以直接貼上來嗎??
    大大用的是DMAX函數嗎??

TOP

回復 5# 藍天麗池

根據你的條件(連續時間)不用VBA就可以做到,見附件。你一定要用VBA嗎?
sonny.rar (7.77 KB)
sonny1.gif
ss

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題