- 帖子
- 678
- 主題
- 147
- 精華
- 0
- 積分
- 799
- 點名
- 0
- 作業系統
- win 8
- 軟體版本
- MS 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2016-2-9
- 最後登錄
- 2022-1-20
|
4#
發表於 2021-9-16 10:24
| 只看該作者
本帖最後由 ziv976688 於 2021-9-16 10:25 編輯
回復 2# samwang
TEST_0916.rar (240.68 KB)
不好意思,還有一個"改變欄位的統計邏輯之語法研習"~懇請您賜教 :
請將下列E:K欄位的統計邏輯改為~
E欄(倍率) =$A$2>0時,D欄的值/$A$2;並請將E欄值取小數點後3位數,第4位四捨五入(=ROUND(D2/$A$2,3))
J欄(總次數) =將D欄的值由大而小(倒序)往下填入。
G欄(總個數) =先搜尋D欄與J欄相同值,後將該D欄值在C欄的同列值往下填入。
H欄(排名)=將D欄值以中式排名的排序往下填入。
I欄(數字) =先搜尋D欄與J欄相同值,後將該D欄值在B欄的同列值往下填入。
K欄(倍率) =先搜尋D欄與J欄相同值,後將該D欄值在E欄的同列值往下填入。
請問語法要如何編改?
謝謝您!
Arr = .Range(.[C1], .[B65536].End(3))
For i = 2 To UBound(Arr)
For j = 1 To 2: Arr(i - 1, j) = xD(Arr(i, 1) & "/" & j): Next
If xD(Arr(i, 1) & "/1") = "" Then Arr(i - 1, 1) = 0: Arr(i - 1, 2) = 0 '要新增
Next
.[C2].Resize(UBound(Arr) - 1, 2) = Arr 'C&D欄
Arr = .Range(.[E2], .[B65536].End(3))
ReDim Crr(1 To UBound(Arr), 1 To 5)
For i = 1 To UBound(Arr)
If Arr(i, 3) > 0 Then Arr(i, 4) = Arr(i, 3) / .[A2] 'E欄
Crr(i, 1) = Arr(i, 2): Crr(i, 2) = Arr(i, 2)
Crr(i, 3) = Arr(i, 1): Crr(i, 4) = Arr(i, 3)
Crr(i, 5) = Arr(i, 4)
Next
.[B2].Resize(UBound(Arr), 4) = Arr
With .Range("g2").Resize(UBound(Crr), 5) 'G欄
.Value = Crr
.Sort key1:=.Item(1), Order1:=2, Header:=xlNo
Crr = .Value
End With
T = Application.Max(.Range("g2:g" & UBound(Crr)))
For i = 1 To UBound(Crr)
Crr(i, 1) = T - Crr(i, 1) + 1
Next
.[H2].Resize(UBound(Crr), 1) = Crr 'H欄 |
|