標題:
[發問]
excel的公式+函數負荷重,是否有辦法精簡呢?
[打印本頁]
作者:
cslu37
時間:
2019-5-8 23:38
標題:
excel的公式+函數負荷重,是否有辦法精簡呢?
請問各位大大:
目前G2是用excel的公式和函數寫出來的,雖然可以使用,但程式的負荷很重,
是否有辦法精簡,且「只顯示G2」呢?
G2→當下時間若符合C1時間,就用 $A$2 x D欄 所算出來的數字。
懇請各位高手大大指導幫忙!!謝謝!!
[attach]30547[/attach]
作者:
hcm19522
時間:
2019-5-9 09:52
本帖最後由 hcm19522 於 2019-5-9 09:54 編輯
=LOOKUP(1,0/(MOD(B2,1)<=C:C),A2*D:D)
E F 公式可不用
作者:
cslu37
時間:
2019-5-9 11:48
回復
2#
hcm19522
感謝hcm19522大大的指導!
再次請教hcm19522大大:
因為我原本時間序列是遞減的,如果要改成遞增的
C3 9:05
C4 9:10
C5 9:15
....以此類推
問題一:時間序列(C欄)想改成遞增,公式要如何修改呢?
原公式 =LOOKUP(1,0/(MOD(B2,1)<=C:C),A2*D:D)
問題二: 0/MOD(B2,1) 是什麼意思呢?為什麼是用「0/」呢?
作者:
hcm19522
時間:
2019-5-9 15:02
回復
3#
cslu37
=OFFSET(D1,MATCH(MOD(B2,1),C:C),)*A2
0/條件成立-->0 0/條件不成立-->0/0-->錯誤 LOOKUP-->取最後條件成立值
作者:
ikboy
時間:
2019-5-9 16:36
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a, t
a = Range("c1:d" & [c1048576].End(3).Row).Value
t = [b2].Value
For i = UBound(a) To 3 Step -1
If t < a(i, 1) Then Exit For
Next
[g2] = [a2] * a(i, 2)
End Sub
複製代碼
作者:
cslu37
時間:
2019-5-10 09:27
回復
4#
hcm19522
感謝hcm19522大大耐心詳細的說明,負荷完全減輕了,真的太謝謝您了!!
作者:
cslu37
時間:
2019-5-10 09:40
回復
5#
ikboy
感謝ikboy的幫忙~
但是我開啟您的zz檔案,G2欄一直都顯示0,是我某個步驟少做了嗎><?
作者:
ikboy
時間:
2019-5-11 18:40
回復
7#
cslu37
直接將第4行改為
t = TimeValue(Time)
複製代碼
作者:
cslu37
時間:
2019-5-13 21:14
回復
8#
ikboy
感謝ikboy的指導!謝謝您!
想請教ikboy大大,原本檔案的時間是"倒序",要改成"正序",
我將第五行最後「-1」改成「1」,第六行的「<」改成「>」,然後...就不會動了...
懇請大大指導,正序的正確修改方式,謝謝您!
[attach]30582[/attach]
作者:
ikboy
時間:
2019-5-15 12:54
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a, t
a = Range("C1:D" & [C1048576].End(3).Row).Value
t = TimeValue(Time)
For i = UBound(a) To 3 Step -1
If t > a(i, 1) Then Exit For
Next
[G2] = [A2] * a(i, 2)
End Sub
複製代碼
作者:
cslu37
時間:
2019-5-16 21:28
回復
10#
ikboy
謝謝 ikboy大大 指導!!
還是大大厲害!!謝謝大大唷!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)