[VBA ] 取一數列中介於X的值

看板Visual_Basic作者 (出院 健康第一)時間15年前 (2011/01/31 13:39), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
請問一下各位強者 小弟是VBA新手(才玩了一周) 日前因整理資料很繁瑣 想要自行寫VBA來簡化步驟 目的: 一時間與電壓的數列如下 Time V 1 2 2 3 3 4 4 3 5 3.5 6 2 7 4 8 4 9 3 10 1 11 0 以上只是假設資料 我想要取此訊號中 >=3的值與對應的時間 該區間中中若是有<3的我也要取 如time=6 我要此數字 但是我不要頭尾的那些無義意訊號 如time=1, time=10~11 我自己寫 都會把那個time=6的丟掉 而實際上我要的是 time=2~9的對應電壓 請板上先進不吝賜教 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.105.125

01/31 16:30, , 1F
所以, 你要的結果是什麼?
01/31 16:30, 1F

01/31 16:54, , 2F
從開頭找第一個>=3的值,記下位置為 x
01/31 16:54, 2F

01/31 16:55, , 3F
從尾巴往頭找第一個>=3的值,記下位置為 y
01/31 16:55, 3F

01/31 16:55, , 4F
最後取出 [ x, y ] 間的值。
01/31 16:55, 4F
那請問如果我的訊號內容不只一個波段呢? EX: time Voltage 1 2 2 3 3 4 4 1 5 5 6 4 . 中間皆為0 . . 100 2 101 4 102 5 103 5 104 2 我只希望可以取第一個波段 且該波段間需具有小於3的數目 我要結果如下 time Voltage 3 4 4 3 5 5 6 4 這樣就沒有辦法從後面找回來了 請問有其他寫法嗎 我自己概念是 cells(i,1).value>4 而且 cells(i+j,1).value>3 時開始取值 j就看抓多少可能j=1(只是舉例) 但是函數不熟好像都沒效果 加上我要處理的資料數都上萬筆 這種寫法電腦跑EXCEL超級慢的 再次請益一下 謝謝各位 ※ 編輯: SkateAdolf 來自: 60.244.105.125 (02/01 10:11) ※ 編輯: SkateAdolf 來自: 60.244.105.125 (02/01 10:13)

02/01 17:50, , 5F
只靠>=3設定開始和結束太模糊。你要歸納出其他pattern
02/01 17:50, 5F

02/01 17:50, , 6F
例如連續多少個0就不算數之類的
02/01 17:50, 6F

02/01 23:59, , 7F
用Excel排序後再扣掉不要的時間
02/01 23:59, 7F
文章代碼(AID): #1DHaiGmo (Visual_Basic)