標題:
[發問]
當符合條件時回傳Sample time & 其儲存格列號
[打印本頁]
作者:
marklos
時間:
2014-12-5 23:12
標題:
當符合條件時回傳Sample time & 其儲存格列號
當符合current (A) <0.1 的條件時回傳Sample time & 其儲存格列號在指定位置[attach]19710[/attach]
作者:
owen06
時間:
2014-12-8 16:35
回復
1#
marklos
要試看看vba嗎
作者:
marklos
時間:
2014-12-9 10:11
回復
2#
owen06
可否請教VBA指令為何?
作者:
owen06
時間:
2014-12-9 10:47
回復
3#
marklos
你下載我的附檔,開啟之後,設定好g2的值,按下右邊的按鈕,就可以了。
按下alt+f11,可以進入vba編輯畫面,你可以研究看看。
有問題可以再上來提出討論。
作者:
marklos
時間:
2014-12-9 10:55
回復
4#
owen06
了解~感謝...有問題再請教.
作者:
samwang
時間:
2014-12-9 13:32
回復
1#
marklos
下面是陣列公式
G5=INDEX(B:B,SMALL(IF($D$2:$D$200=MAX(IF($D$2:$D$200<$G$2,$D$2:$D$200,"")),ROW($2:$200)),ROW($1:$1)))&""
H5=SMALL(IF($D$2:$D$200=MAX(IF($D$2:$D$200<$G$2,$D$2:$D$200,"")),ROW($2:$200)),ROW($1:$1))&""
作者:
marklos
時間:
2014-12-9 13:59
回復
4#
owen06
如果要把其儲存列號代入以下算式去計算其時間總數及總和該怎麼做?
=COUNT(E2:E
61
)/3600
=SUM(E2:E
61
)/3600
作者:
owen06
時間:
2014-12-9 14:05
回復
6#
samwang
可是回傳出來的答案是第20列的資料耶,正確的應該是第61列不是嗎?
作者:
owen06
時間:
2014-12-9 14:18
回復
7#
marklos
假設在h6跟h7要計算的話,改成這樣就行了
Private Sub CommandButton1_Click()
[g5,h5] = ""
For Each cu In Range("d2:d" & [a65536].End(3).Row)
If cu.Value < [g2] Then
[g5] = cu.Offset(0, -2).Value
[h5] = cu.Row
[h6] = Application.Count(Range("e2:e" & cu.Row)) / 3600
[h7] = Application.Sum(Range("e2:e" & cu.Row)) / 3600
Exit Sub
End If
Next
End Sub
複製代碼
作者:
marklos
時間:
2014-12-9 14:19
回復
8#
owen06
送上附件
作者:
owen06
時間:
2014-12-9 14:24
回復
10#
marklos
複製下列代碼貼上去取代舊的就行了
Private Sub CommandButton1_Click()
[g5,h5] = ""
For Each cu In Range("d2:d" & [a65536].End(3).Row)
If cu.Value < [g2] Then
[g5] = cu.Offset(0, -2).Value
[h5] = cu.Row
[g7] = Application.Count(Range("e2:e" & cu.Row)) / 3600
[h7] = Application.Sum(Range("e2:e" & cu.Row)) / 3600
Exit Sub
End If
Next
End Sub
複製代碼
作者:
marklos
時間:
2014-12-9 16:23
回復
9#
owen06
[attach]19740[/attach]
如果在同一工作表內有兩筆資料需要個別檢察並顯示該如何?
作者:
owen06
時間:
2014-12-9 22:30
回復
10#
marklos
將下列代碼複製貼上取代原有的內容
Private Sub CommandButton1_Click()
[g5,h5,g8,h8,o5,p5,g8,h8] = ""
For Each cu In Range("d2:d" & [a65536].End(3).Row)
If cu.Value < [g2] Then
[g5] = cu.Offset(0, -2).Value
[h5] = cu.Row
[g8] = Application.Count(Range("e2:e" & cu.Row)) / 3600
[h8] = Application.Sum(Range("e2:e" & cu.Row)) / 3600
GoTo 99
End If
Next
99 For Each cu2 In Range("m2:m" & [j65536].End(3).Row)
If cu2.Value < [o2] Then
[o5] = cu2.Offset(0, -2).Value
[p5] = cu2.Row
[o8] = Application.Count(Range("p2:p" & cu2.Row)) / 3600
[p8] = Application.Sum(Range("p2:p" & cu2.Row)) / 3600
Exit Sub
End If
Next
End Sub
複製代碼
作者:
samwang
時間:
2014-12-9 22:37
回復
8#
owen06
若以G2 current (A) <0.15為基準, 我是取<0.15但最接近0.15的第一筆資料, 那就是
0.149
第45列
你取的值是 1.1494 第30列,其實我也不太了解版大要的是哪一種,
沒關希提供不一樣的答案供參考
作者:
samwang
時間:
2014-12-9 22:47
回復
7#
marklos
先名稱定義
PW=OFFSET(工作表1!$E$1,,,VALUE(工作表1!$H$5))
公式改為如下
=COUNT(E2:E61)/3600 --> =COUNT(PW)/3600
=SUM(E2:E61)/3600 --> =SUM(PW)/3600
作者:
marklos
時間:
2014-12-10 14:15
感謝您的大力幫忙~
作者:
marklos
時間:
2014-12-10 14:18
回復
13#
owen06
感謝您的大力幫忙
作者:
marklos
時間:
2014-12-10 16:10
回復
13#
owen06
如果[g8]要變更成計算時間差,如下~~VBA要怎麼寫~
=TEXT(g5-B2+(g5<B2),"[ss]"/3600
作者:
marklos
時間:
2016-5-4 10:37
回復
9#
owen06
如果符合條件還要加入連續出現5次以上才回傳Sample time & 儲存格列號 , 要怎麼做呢?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)