Board logo

標題: [發問] 指定列之前3名各標示顏色及指定欄標示底色的語法。 [打印本頁]

作者: papaya    時間: 2019-3-24 22:19     標題: 指定列之前3名各標示顏色及指定欄標示底色的語法。

本帖最後由 papaya 於 2019-3-24 22:23 編輯

[attach]30294[/attach]

[attach]30295[/attach]
[attach]30296[/attach]
需求_1︰
A1︰A&有數字的最後一列標示淺綠藍底色
G1︰K&有數字的最後一列標示淺綠藍底色
Q1︰U&有數字的最後一列標示淺綠藍底色
AA1︰AE&有數字的最後一列標示淺綠藍底色
AK1︰AO&有數字的最後一列標示淺綠藍底色
AU1︰AX&有數字的最後一列標示淺綠藍底色

需求_2-1︰
倒數第7列(即A欄=空的列)的B︰AX~
最大數標示淺粉藍底色(可有1個以上);
第二大數標示亮綠底色(可有1個以上);
第三大數標示淺橙底色(可有1個以上);
最小數標示紅色粗體的字體顏色(可有1個以上);
第二小數標示粉紅色粗體的字體顏色(可有1個以上);
第三小數標示深紅色粗體的字體顏色(可有1個以上);

需求_2-2︰
倒數第5列(即A欄=機的列)的B︰AX~
最大數標示淺粉藍底色(可有1個以上);
第二大數標示亮綠底色(可有1個以上);
第三大數標示淺橙底色(可有1個以上);
最小數標示紅色粗體的字體顏色(可有1個以上);
第二小數標示粉紅色粗體的字體顏色(可有1個以上);
第三小數標示深紅色粗體的字體顏色(可有1個以上);

以上需求,誠請各位大大幫忙和賜教!
謝謝各位!

作者: papaya    時間: 2019-3-28 07:08

回復 1# papaya
[attach]30319[/attach]

[attach]30320[/attach]
[attach]30321[/attach]
重新整理~
需求_1︰
將倒數第7列(即A欄=空的列)的B︰AX~
最大數標示淺粉藍底色(可有1個以上);
第二大數標示亮綠底色(可有1個以上);
第三大數標示淺橙底色(可有1個以上);
最小數標示紅色粗體的字體顏色(可有1個以上);
第二小數標示粉紅色粗體的字體顏色(可有1個以上);
第三小數標示深紅色粗體的字體顏色(可有1個以上);

需求_2︰

將倒數第5列(即A欄=機的列)的B︰AX~
最大數標示淺粉藍底色(可有1個以上);
第二大數標示亮綠底色(可有1個以上);
第三大數標示淺橙底色(可有1個以上);
最小數標示紅色粗體的字體顏色(可有1個以上);
第二小數標示粉紅色粗體的字體顏色(可有1個以上);
第三小數標示深紅色粗體的字體顏色(可有1個以上);

請詳見︰標示顏色(EX 1) & (EX 2)

以上需求,誠請各位大大幫忙和賜教!
謝謝各位!
作者: papaya    時間: 2019-3-29 05:54

回復 2# papaya
簡化問題︰
請指正下列程式碼~
'將B︰AX倒數的第7列之最大數標示淺粉藍底色~
For Each A In Cells([B65536].End(xlUp).Row - 6, 2).Resize(1, 49)
If Application.Max(Cells([B65536].End(xlUp).Row - 6, 2).Resize(1, 49)) Then A.Interior.ColorIndex = 8
Next

呈現的是錯誤的標示範圍(將B︰AX倒數的第7列全標示淺粉藍底色)
[attach]30328[/attach]

正確的標示是︰將最大數(=13)標示淺粉藍底色
[attach]30329[/attach]

請問:正確的程式碼要如何編寫?
謝謝各位!

作者: hcm19522    時間: 2019-3-30 10:16

(先)B1:AX23格式化=(MOD(INT(COLUMN(E1)/5),2)=0)*1

B17:AX17最大數=LARGE($B17:$AX17,1)=B17

第二 三大數 :公式 1改 2 ,3

最小數 公式 LARGE改SMALL

19列同17列
作者: papaya    時間: 2019-3-30 15:35

回復 4# hcm19522
hcm19522大大:您好!
函數解我已會解~http://forum.twbts.com/thread-20731-1-1.html~
但是每個統計表會因期數的增加而列數不固定,所以函數解不適用。

爬文多日~只有在"知識+"找到一段適用的語法,但因年月過久,其範例已無法下載,所以A值的設定還沒有搞清楚^^"
最後還是非常感謝您的解答^^
作者: hcm19522    時間: 2019-3-30 16:14

本帖最後由 hcm19522 於 2019-3-30 16:36 編輯

回復 5# papaya


    ("空"行 最大)B77:AX???格式化=(LARGE(OFFSET($B$1,MATCH("空",$A:$A,)-1,,,20),1)=OFFSET($A$1,MATCH("空",$A:$A,)-1,COLUMN(A1)))*(ROW(A1)=MATCH("空",$A:$A,)-1)
次大 待研究
作者: papaya    時間: 2019-3-30 16:51

回復 6# hcm19522
請問:
("空"行 最大)B77:AX???格式化=(LARGE(OFFSET($B$1,MATCH("空",$A:$A,)-1,,,20),1)=OFFSET($A$1,MATCH("空",$A:$A,)-1,COLUMN(A1)))*(ROW(A1)=MATCH("空",$A:$A,)-1)
  假設是在$B17:$AX17
20是代表什麼意思?謝謝您!
作者: hcm19522    時間: 2019-3-30 18:23

https://blog.xuite.net/hcm19522/twblog
先了解此邏輯https://blog.xuite.net/hcm19522/twblog/587219554
OFFSET($B$1,MATCH("空",$A:$A,)-1,,,20)-->整行資料
N(OFFSET($A$1,MATCH("空",$A:$A,)-1,COLUMN(A1)))-->該行往右逐一資料
作者: hcm19522    時間: 2019-3-30 18:24

回復 7# papaya


    資料範圍49-->20改49
作者: papaya    時間: 2019-3-30 21:31

回復 9# hcm19522
測試檔:
[attach]30336[/attach]

不知我的操作有沒有錯誤?
格式設定公式在B2:AX2~測試沒有成功^^"
請指正!謝謝您!
作者: hcm19522    時間: 2019-3-30 21:44

回復 10# papaya
範圍取B2:AX99 試試
作者: papaya    時間: 2019-3-30 23:13

回復 11# hcm19522
hcm19522大大:
測試成功了~您的函數造詣真是超高~第一次見識到浮動的格式設定函數公式~令人佩服^^
非常感謝您的熱心指導~感恩^^

==================================================================================

"空"列的B:AX還需要前三小的標示,因受到2003版只能輸入3個條件的限制,所以還是需要前3大前3小的VBA語法~
誠請各位大大不吝指教!謝謝!
作者: papaya    時間: 2019-4-1 22:47

問題已解決!謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)