標題:
[發問]
公式優化的問題。
[打印本頁]
作者:
ziv976688
時間:
2019-9-19 04:21
標題:
公式優化的問題。
[attach]31276[/attach] [attach]31277[/attach]
將AP13:BX20的格式改為AP1:CE7的格式後,公式對應調整為~~
前三大︰
AQ3=MAX(--TEXT(INDEX($B:$G,AQ$1,),"[>="&IF(
AQ$1=""
,AO3,999)&"]!0"))
AS3=MAX(--TEXT(INDEX($B:$G,AS$1,),"[>="&IF(
AS$1<>""
,AQ3,999)&"]!0"))
AU3=MAX(--TEXT(INDEX($B:$G,AU$1,),"[>="&IF(
AU$1<>""
,AS3,999)&"]!0"))
其餘......類推。
前三小︰
AQ3==MIN(--TEXT(INDEX($B:$G,AQ$1,),"[<="&IF(
AQ$1=""
,AO3,-1)&"]!99!9"))
AS3=MIN(--TEXT(INDEX($B:$G,AS$1,),"[<="&IF(
AS$1<>""
,AQ3,-1)&"]!99!9"))
AU3 =MIN(--TEXT(INDEX($B:$G,AU$1,),"[<="&IF(
AU$1<>""
,AS3,-1)&"]!99!9"))
其餘......類推。
因為不能複製AQ3:AR3直接貼上AS3和AU3,只能複製AS3:AT貼上AU3
所以請問︰
公式能否再優化嗎?
謝謝!
測試附件檔案 : [attach]31278[/attach]
作者:
ziv976688
時間:
2019-9-24 04:12
本帖最後由 ziv976688 於 2019-9-24 04:21 編輯
回復
1#
ziv976688
1樓的需求
可忽略不強求
~
一因只是多寫1個AS3的公式。也不是多麻煩的事,二因有更重要的問題求解~
五行
的前3小工作表的
AR3
=IF(AQ3=999,"",SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX($B:$G,AR$1,)=AQ3,$B$2:$G$2,0),{
1,2,3,4,5
})*10^{
0,2,4,6,8
}),"00"&REPT("!,00",
4
)),"00,",))
請問: 公式中的
1,2,3,4,5
和
0,2,4,6,8
和
4
代表什麼意義?
PS :
五行
的欄數比=6:9:8:8:8
如下圖 :
[attach]31290[/attach]
因為當格式改為如
尾數
的前3小工作表,其
AR3
公式就必須改為
=IF(AQ3=999,"",SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX($B:$E,AR$1,)=AQ3,$B$2:$E$2,0),{
1,2,3
})*10^{
0,2,4
}),"00"&REPT("!,00",
4
)),"00,",))
才能顯示正確的答案。
請問:
AR3
的公式改成這樣正確嗎?
PS :
尾數
的欄數比=4:4:4:4:4:4:4:4:4:3
如下圖 :
[attach]31291[/attach]
因為539還有
生肖的欄位比=3:3:3:3:3:3:3:3:4:4:4:3
八卦的欄位比=4:5:5:5:5:5:5:5
另外大樂透49有
五行的欄位比=8:12:10:10:9
尾數的欄位比=5:5:5:5:5:5:5:5:5:4
生肖的欄位比=4:4:4:4:4:4:4:4:4:4:5:4
八卦的欄位比=6:6:7:6:6:6:6:6
所以請指導和說明公式中各段的意涵,以利不才能因應格式的變化而填入適當正確的公式。
謝謝!
測試檔 : [attach]31292[/attach]
作者:
ML089
時間:
2019-9-24 09:28
回復
1#
ziv976688
原問題先回覆,
AQ3原式 =MAX(--TEXT(INDEX($B:$G,AQ$1,),"[>="&IF(AQ$1="",AO3,999)&"]!0"))
AQ3改為 =MAX(--TEXT(INDEX(
INDIRECT($AP3)
,AQ$1,),"[>="&IF(
N(AP$1)
,AO3,999)&"]!0"))
-----------------------
AR3原式 =SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX($B:$G,AR$1,)=AQ3,$B$2:$G$2,0),{1,2,3,4,5})*10^{0,2,4,6,8}),"00"&REPT("!,00",4)),"00,",)
AR3改為 =SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX(
INDIRECT($AP3)
,AR$1,)=AQ3,
INDEX(INDIRECT($AP3),2,)
,0),{1,2,3,4,5})*10^{0,2,4,6,8}),"00"&REPT("!,00",4)),"00,",)
這樣 AQ3:AR3 可以往下複製,往右複製,
也可以 AQ3:AV7 塊狀複製到 AX3 、BE3
說明:
資料排列正常化可以讓公式較具有通用性
原先 $B:$G 可以由 AP3中的文字轉換,公式為 INDIRECT($AP3)
原先 $B2:$G2 可以由 AP3中的文字轉換,公式為 INDEX(INDIRECT($AP3),2,)
作者:
ML089
時間:
2019-9-24 09:29
2樓問題我在找時間看看
作者:
ziv976688
時間:
2019-9-24 13:31
本帖最後由 ziv976688 於 2019-9-24 13:42 編輯
回復
4#
ML089
M版主 : 您好!
感謝您3樓的精闢解題公式~實在是太神太方便了^^
......................................................................................................................
因為由3樓的貴解,得知AP欄的文字,可以用"INDIRECT"轉換~(本來不才是以為$B$2:$G$2無函數可轉換)~
所以2樓的圖片和附件範例的尾數檔案之AP3:AP12,也改為B:E;F:I;......;AL:AN~如附件 : [attach]31293[/attach]
謝謝您^^
PS: 目前依3樓的貴解
五行的AR3 =SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX(INDIRECT($AP3),AR$1,)=AQ3,INDEX(INDIRECT($AP3),2,),0),{
1,2,3,4,5
})*10^{
0,2,4,6,8
}),"00"&REPT("!,00",
4)
),"00,",)
尾數的AR3 =SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX(INDIRECT($AP3),AR$1,)=AQ3,INDEX(INDIRECT($AP3),2,),0),{
1,2,3
})*10^{
0,2,4
}),"00"&REPT("!,00",
4
)),"00,",)
作者:
ML089
時間:
2019-9-24 13:44
回復
2#
ziv976688
五行的前3小工作表的AR3
=IF(AQ3=999,"",SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX($B:$G,AR$1,)=AQ3,$B$2:$G$2,0),{1,2,3,4,5})*10^{0,2,4,6,8}),"00"&REPT("!,00",4)),"00,",))
請問: 公式中的1,2,3,4,5和0,2,4,6,8和4代表什麼意義?
LARGE(IF(INDEX($B:$G,AR$1,)=AQ3,$B$2:$G$2,0),{1,2,3,4,5}) 其中的 {1,2,3,4,5} 就是公式一次抓出前5大數值,
這5個數字各別乘於 10^{0,2,4,6,8} (這也是5個乘數 {10^0, 10^2, 10^4, 10^6, 10^8} ,也就是 {1, 100, 10000, 1000000, 100000000})
假設前5大數字為 {20, 15, 0, 0, 0} 再乘於 10^{0,2,4,6,8} 就變成 {20, 1500,0,0,0} 再將5數字合計後為 1520,
用 TEXT將數字分隔開來 TEXT(1520, ,"00"&REPT("!,00",4)) 變成 "00,00,00,15,20"
用 SUBSTITUTE,"00,00,00,15,20" ,"00,",) 去除前面的 "00," 就變成 "15,20"
作者:
ML089
時間:
2019-9-24 14:02
回復
5#
ziv976688
"00"&REPT("!,00",4) 展開是 "00,00,00,00,00" 是5組 00,於前面的 {1,2,3,4,5} 取5個數字是對應的。
當然 "00"&REPT("!,00",4) 對應 {1,2,3} 取3個數子也不會有錯,因為3個數字合計後也就是一個數字,頂多前面會多出 "00,00," ,最後SUBTITUTE會將多餘的 "00," 刪除
作者:
ziv976688
時間:
2019-9-24 14:10
回復
7#
ML089
M版主 : 您好!
感謝您的耐心說明與指導~不才瞭解了^^
其餘不同欄位比的公式,不才應該可以自行調整了~感恩...........n+1
作者:
ziv976688
時間:
2019-9-24 16:25
本帖最後由 ziv976688 於 2019-9-24 16:34 編輯
回復
7#
ML089
M版主 : 您好!
不好意思,前3大公式有1個地方,不知能否調整?
謝謝您!
文字說明 :
當沒有
次大
的
次數
值(AS3)或第
三大
的
次數
值(AU3)時,希望(AS3)或(AU3)能顯示"
N
"~
因為AS3或AU3顯示0,在某情況下(尤其是在比對欄位數較少時,常會發生),
AT3
或
AV3
會產生"
錯誤
值"。
詳如下列圖片 ~
[attach]31298[/attach] [attach]31299[/attach]
測試附件 :[attach]31300[/attach]
作者:
ziv976688
時間:
2019-9-24 16:45
補充 :
如果顯示
文字
,會比任何純數值都大而不可行時,是否能顯示"
負值
"~EX :
"-999
"。
謝謝您!
作者:
ML089
時間:
2019-9-24 16:59
本帖最後由 ML089 於 2019-9-24 17:02 編輯
回復
9#
ziv976688
AQ3 =
TEXT(
MAX(--TEXT(INDEX(INDIRECT($AP3),AQ$1,),"[>="&IF(N(AP$1),AO3,999)&"]
-9
;;0"))
,"0;!N;0")
AR3 =
IF(AQ3="N","",
SUBSTITUTE(TEXT(SUM(LARGE(IF(INDEX(INDIRECT($AP3),AR$1,)=AQ3
*1
,INDEX(INDIRECT($AP3),2,),0),{1,2,3,4})*10^{0,2,4,6}),"00"&REPT("!,00",4)),"00,",))
作者:
ziv976688
時間:
2019-9-24 19:43
回復
11#
ML089
M版主 : 您好!
所有不才能想到的需求,都已圓滿達成。
您的耐心協助和熱心指導~不才銘感五內~在此拜謝!!!!!!!!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)