標題:
取前3小(中式排名)的同欄第1列數字。
[打印本頁]
作者:
papaya
時間:
2019-4-13 01:56
標題:
取前3小(中式排名)的同欄第1列數字。
本帖最後由 papaya 於 2019-4-13 02:02 編輯
[attach]30377[/attach]
[attach]30378[/attach]
H7=B7:F7的最小數字的第1列同欄數字(最多5個,即下拉到H11),
I7=B7:F7的第二小數字的第1列同欄數字(最多4個,即下拉到H10),
J7=B7:F7的第三小數字的第1列同欄數字(最多3個,即下拉到H9),
H14,H21,H28 =>同理類推。
I14,I21,I28 =>同理類推。
J14,J21,J28 =>同理類推。
請問︰H7︰J7的函數公式?
誠請各位大大幫忙和賜教!
謝謝各位!
作者:
papaya
時間:
2019-4-13 05:18
本帖最後由 papaya 於 2019-4-13 05:28 編輯
修正筆誤:
(最多4個,即下拉到H10)=>(最多4個,即下拉到I10)
(最多3個,即下拉到H9)=>(最多3個,即下拉到J9)
請問︰H7︰J7的函數公式? =>請問︰H7,I7,J7的函數公式?
謝謝!
作者:
hcm19522
時間:
2019-4-13 10:36
https://blog.xuite.net/hcm19522/twblog/587328668
作者:
papaya
時間:
2019-4-13 12:46
回復
3#
hcm19522
hcm19522大大:!您好!
答案測試OK了!謝謝您!
=ISERR(H7) =>不好意思,除錯公式要怎麼寫?
誠請賜教!再次謝謝您!
作者:
hcm19522
時間:
2019-4-13 15:52
回復
4#
papaya
圈選H7:J28-->點設定格式化條件 (常用下 上方中間)-->下公式-->選色
作者:
papaya
時間:
2019-4-13 16:30
回復
5#
hcm19522
hcm19522大大:您好!
謝謝您的耐心幫忙~感恩^^
我自己自作聰明,出了一些狀況^*^
等整理好檔案,再繼續向您請教!
謝謝您!
作者:
papaya
時間:
2019-4-13 19:08
回復
5#
hcm19522
hcm19522大大:
不好意思,因為想讓解題者容易閱覽,所以將表格內容內容簡化,但想到添入完整內容卻影響到公式的解答;
因自己的自作聰明,給您添麻煩,尚請見諒^^"
[attach]30384[/attach]
需求︰
將B︰AX共49欄分成5欄+5欄+5欄+5欄+5欄+5欄+5欄+5欄+5欄+4欄共10區段
統計各區段在第7,14,21,28,35,42,49,56,63,69列的最小和第二小和第三小(中式排名)的同欄第一列的數字。
請問︰AZ7︰CC7的函數公式?
詳如︰區段測試檔。
謝謝您!
作者:
hcm19522
時間:
2019-4-14 09:47
回復
7#
papaya
AZ7=SMALL(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),MOD(COLUMN(A1)-1,3)+1)
作者:
papaya
時間:
2019-4-14 10:59
本帖最後由 papaya 於 2019-4-14 11:12 編輯
回復
8#
hcm19522
正確答案
[attach]30389[/attach]
目前公式的答案
[attach]30387[/attach]
[attach]30388[/attach]
hcm19522大大:您好!
不好意思,貴解題公式的答案缺少"中式排名"和"顯示同欄第一列數字"的需求;另外下拉後有非答案的數字。
煩請賜正!
謝謝您!
作者:
hcm19522
時間:
2019-4-19 10:12
回復
9#
papaya
(每區輔助)AZ6:CC6{=SMALL(IF(IFERROR(MATCH(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),),99)={1,2,3,4,5},OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(COLUMN(A1)-1,3)+1)
AZ7:CC11{=IFERROR(SMALL(IF(OFFSET($B$7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)=N(OFFSET(AZ$1,ROW()-MOD(ROW(A1),7)-1,)),OFFSET($B$1,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(ROW(A1)-1,7)+1),"")
AZ6:CC6複製到每區 ;AZ7複製到每區 修改一處$B$7-->$B$14 右拉 下拉
作者:
hcm19522
時間:
2019-4-19 14:21
https://blog.xuite.net/hcm19522/twblog/587392713
作者:
papaya
時間:
2019-4-20 13:58
本帖最後由 papaya 於 2019-4-20 13:59 編輯
回復
10#
hcm19522
hcm19522大大:您好!
(每區輔助)AZ6:CC6{=SMALL(IF(
IFERROR
(
MATCH(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),)
,99)={1,2,3,4,5},OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(COLUMN(A1)-1,3)+1)
改為:
=SMALL(IF(
IF
(
ISERROR
(MATCH(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),)),99,
MATCH(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)
,
OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),)
)={1,2,3,4,5},OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(COLUMN(A1)-1,3)+1)
不知道哪裡錯了?顯示"公式錯誤!"
請幫我修正,可以嗎?謝謝您!
AZ7:CC11已將IFERROR改IF(ISERROR)完成。
作者:
hcm19522
時間:
2019-4-20 15:23
回復
12#
papaya
作者:
papaya
時間:
2019-4-20 18:10
回復
13#
hcm19522
hcm19522大大:
(每區輔助)AZ6:CC6{=SMALL(IF(
IFERROR
(MATCH(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5),),99)={1,2,3,4,5},OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(COLUMN(A1)-1,3)+1)
您誤會了!我是要如何將2007的 IFERROR改為2003的IF ISERROR
您的範例檔還是2007的 IFERROR,在2003Excel還是無法顯是答案^^"
作者:
hcm19522
時間:
2019-4-21 10:08
回復
14#
papaya
SMALL(IF(
IFERROR(
MATCH(OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,
5
),OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,
5
),)
,99)
={1,2,3,4
,5
},OFFSET($B7,,MAX(INT((COLUMN(A1)-1)/3)*5),,
5
)),MOD(COLUMN(A1)-1,3)+1)
刪IFERROR( 與 ,99) (藍色) 最後區刪 ,5) 與 5改4 (紅色)
作者:
papaya
時間:
2019-4-21 13:16
本帖最後由 papaya 於 2019-4-21 13:26 編輯
回復
15#
hcm19522
hcm19522大大:
感謝您的耐心賜教!
輔助欄AZ6:CC6的公式OK了!謝謝您!
AZ7:CC11的公式
=IFERROR(SMALL(IF(OFFSET($B$7,,MAX(INT((COLUMN(A1)-1)/3)*5),,
5
)=N(OFFSET(AZ$1,ROW()-MOD(ROW(A1),7)-1,)),OFFSET($B$1,,MAX(INT((COLUMN(A1)-1)/3)*5),,
5
)),MOD(ROW(A1)-1,7)+1),"")
最後一區段,
5
改
4
改成2003版函數
=IF
(
ISERROR
(
SMALL(IF(OFFSET($B$7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)=N(OFFSET(AZ$1,ROW()-MOD(ROW(A1),7)-1,)),OFFSET($B$1,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(ROW(A1)-1,7)+1)
)
,"",
SMALL(IF(OFFSET($B$7,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)=N(OFFSET(AZ$1,ROW()-MOD(ROW(A1),7)-1,)),OFFSET($B$1,,MAX(INT((COLUMN(A1)-1)/3)*5),,5)),MOD(ROW(A1)-1,7)+1)
)
目前顯示的答案
不完全
正確~很多儲存格沒有數字(="")^*^
煩請指正!不勝感激!
測試檔
[attach]30451[/attach]
作者:
papaya
時間:
2019-4-21 13:33
本帖最後由 papaya 於 2019-4-21 13:36 編輯
補充:
AZ7:CC11的公式改成2003版函數後~
還會造成
循環參照
^^"
不知道是哪裡改錯了?
煩請指正!謝謝您!
作者:
ML089
時間:
2019-4-21 19:49
公式中的儲存格都要定資料位置,造成公式龐大不易維護,也不易看懂。
最後龐大的公式容易超過2003版公式巢狀迴圈限制,單一公式不容易發展。
建議以名稱公式來組合,比較容易維護公式
AZ7 =IF(ISERROR(_AZ7),"",_AZ7)
右拉下拉
AZ7格的名稱公式
_Y =LOOKUP(9,0/("小計"=$A1:$A7),{6,5,4,3,2,1,0})
_X =MAX(INT((COLUMN(A1)-1)/3)*5) * MAX() 主要是避免使用 N(OFFSET())
_W =COUNT(OFFSET($B$1,,_X,,5)) * 一般為5,最後一組為4
_B1 =OFFSET($B$01,,_X,,_W) * $1:$1
_B71 =OFFSET($B$71,,_X,,_W) * $71:$71
_B7 =OFFSET($B7,-_Y,_X,,_W) * 活動位置
_AY7 =IF(MOD(COLUMN(!C1),3)=0,0,INDEX(OFFSET(!$B7:$AX7,-_Y,),MATCH(OFFSET(!AY7,-_Y,),!$B$1:$AX$1,)))
_AZ7 =SMALL(IF(SMALL(_B7+_B71%%*0,1+COUNTIF(_B7,"<="&_AY7 ))=_B7+_B71%%*0,_B1),1-_Y)
* _B71%%*0 本項暫時不用參加排序及驗證, "*0" 乘0表示取消
[attach]30454[/attach]
作者:
papaya
時間:
2019-4-21 20:45
回復
18#
ML089
ML089版主:您好!
全如需求。
萬分感謝您所作的詳細說明和範例檔。
我會仔細研讀~尤其是名稱定義公式。
作者:
ML089
時間:
2019-4-22 09:00
回復
19#
papaya
補充
_AY7 =IF(MOD(COLUMN(!C1),3)=0,0,INDEX(OFFSET(!$B7:$AX7,-_Y,),MATCH(OFFSET(!AY7,-_Y,),!$B$1:$AX$1,)))
只適用於 $B$1:$AX$1 內的值不重複時才能使用
AY7 名稱(在AZ7格之名稱公式)可以修改如下
=IF(MOD(COLUMN(!C3),3)=0,0,LOOKUP(,0/(--_B1=--OFFSET(!AY7,_Y,)),_B7)
作者:
papaya
時間:
2019-4-22 09:58
回復
20#
ML089
ML089版主:您好!
瞭解^^
第一列的01~49數字不會重覆。
感謝您的補充。
您的公式我還在消化中~
希望能達到自己修改為前3大(包括比對71列時,也是取同欄比較的數字)的目的^^"
作者:
ML089
時間:
2019-4-22 10:09
回復
21#
papaya
需求︰
將B︰AX共49欄分成5欄+5欄+5欄+5欄+5欄+5欄+5欄+5欄+5欄+4欄共10區段
統計各區段在第7,14,21,28,35,42,49,56,63,69列的最小和第二小和第三小(中式排名)的同欄第一列的數字。
請問︰AZ7︰CC7的函數公式?
詳如︰區段測試檔。
謝謝您!
這題的麻煩是
X向為間距5,最後一格間距4
Y向為間距7,最後一格間距6
若能將資料規格排列,亦能使公式更簡潔。
計算資料的核心滿簡單的,可以要公式找資料定位資料耗費太多做業。
作者:
papaya
時間:
2019-4-22 11:50
本帖最後由 papaya 於 2019-4-22 11:53 編輯
回復
22#
ML089
ML089版主:您好!
我也瞭解問題出在最後一區段的欄列與其他區段不同,但App下載到電腦後轉Excel就是這樣的固定格式,也曾想要以手工插入一空白列,
而且期數更新後,每次貼資料時,資料還要分段重新貼上,尤其是一更改就要動49個檔案*6種類型*3種排序=855個檔案,
然後49個號碼,任何排序的最後區段還是4個號碼,還是無法全部配合一式到底的公式~因此只好以公式來遷就格式~
畢竟公式只要貼一次作範本,期數更新後,只要選擇貼上純值就可以了。
給您在解題時,增添許多的困擾,真是抱歉^^"
再次感謝您的耐心指導^^
後敘:
老實說:我本來是想10個區段分作10個公式,不需要非得一式到底完成~因為公式只要貼一次作範本就不用再更動了。
也曾想以VBA來完成,但想到這麼多式樣的需求,分N次發問,能不能得到最終結果也是未知數,因為常常花了一二個月的時間,得到9成的階段答案,
但最終一成的結果發問題,卻剛好都無人理,前功盡棄又如何?只能徒嘆罷了~所以打消以VBA取得需求的念頭^^"
作者:
ML089
時間:
2019-4-22 14:31
回復
23#
papaya
了解,盡量配合資料來源格式是比較好
有時大家時間並沒有那麼剛好有空,會造成貼文無人問津,可以過一陣再貼一次。
當然簡化問題或分割問題也需要,一般就能決解的問題大家容易回答,若要想一下,常常想一下就忘記這個問題。
作者:
papaya
時間:
2019-4-22 15:19
回復
24#
ML089
ML089版主:您好!
不好意思,順道請教一下:
10區段各分成10段公式,公式會簡化些嗎?
如果可以的話,請您寫AZ7:BB7和CA69:CC69就好,其它區段的位址和垂直列數變化我自己更改。
等您有空再說。謝謝您^^
作者:
papaya
時間:
2019-4-22 18:28
本帖最後由 papaya 於 2019-4-22 18:30 編輯
回復
24#
ML089
補充~
上一樓的AZ7:BB7和CA69:CC69的唯一希望的是
2003版的一般數值型陣列公式
,
不用一式到底完成,也
不用
"除錯"
。
晚飯後。我再作一個範例,
所以等明天以後,您有空再說就可以了。
謝謝您^^
作者:
papaya
時間:
2019-4-22 21:22
本帖最後由 papaya 於 2019-4-22 21:27 編輯
回復
24#
ML089
ML089版主:您好!
AZ7
=SMALL(IF(SMALL(IF(MATCH(OFFSET($B$6,LOOKUP(1,0/(B$7:B$7>0),ROW($1:1)),,,
5
),OFFSET($B$6,LOOKUP(1,0/(B$7:B$7>0),ROW($1:1)),,,
5)
,)={1,2,3,4,
5
},OFFSET($B$6,LOOKUP(1,0/(B$7:B$7>0),ROW($1:1)),,,
5
)),COLUMN(A1))=OFFSET($B$6,LOOKUP(1,0/(B$7:B$7>0),ROW($1:1)),,,
5
),$B$1:$F$1),MOD(ROW(A1),
7
))
右拉到BB7下拉至BB12
BC7
=SMALL(IF(SMALL(IF(MATCH(OFFSET($G$6,LOOKUP(1,0/(G$7:G$7>0),ROW($1:1)),,,5),OFFSET($G$6,LOOKUP(1,0/(G$7:G$7>0),ROW($1:1)),,,5),)={1,2,3,4,5},OFFSET($G$6,LOOKUP(1,0/(G$7:G$7>0),ROW($1:1)),,,5)),COLUMN(A1))=OFFSET($G$6,LOOKUP(1,0/(G$7:G$7>0),ROW($1:1)),,,5),$G$1:$K$1),MOD(ROW(A1),7))
右拉到BE7下拉至BE12
其餘類推
CA7
=SMALL(IF(SMALL(IF(MATCH(OFFSET($AU$6,LOOKUP(1,0/(AU$7:AU$7>0),ROW($1:1)),,,
4
),OFFSET($AU$6,LOOKUP(1,0/(AU$7:AU$7>0),ROW($1:1)),,,
4
),)={1,2,3,
4
},OFFSET($AU$6,LOOKUP(1,0/(AU$7:AU$7>0),ROW($1:1)),,,
4
)),COLUMN(A1))=OFFSET($AU$6,LOOKUP(1,0/(AU$7:AU$7>0),ROW($1:1)),,,
4
),$AU$1:$AX$1),MOD(ROW(A1),7))
右拉到CC7下拉至CE12
其餘類推
AZ69
=SMALL(IF(SMALL(IF(MATCH(OFFSET($B$68,LOOKUP(1,0/(B$69:B$69>0),ROW($1:1)),,,5),OFFSET($B$68,LOOKUP(1,0/(B$69:B$69>0),ROW($1:1)),,,5),)={1,2,3,4,5},OFFSET($B$68,LOOKUP(1,0/(B$69:B$69>0),ROW($1:1)),,,5)),COLUMN(A1))=OFFSET($B$68,LOOKUP(1,0/(B$69:B$69>0),ROW($1:1)),,,5),$B$1:$F$1),MOD(ROW(A1),
6
))
右拉到BB69下拉至BB73
CA69
=SMALL(IF(SMALL(IF(MATCH(OFFSET($AU$68,LOOKUP(1,0/(AU$69:AU$69>0),ROW($1:1)),,,
4
),OFFSET($AU$68,LOOKUP(1,0/(AU$69:AU$69>0),ROW($1:1)),,,
4
),)={1,2,3,
4
},OFFSET($AU$68,LOOKUP(1,0/(AU$69:AU$69>0),ROW($1:1)),,,
4
)),COLUMN(A1))=OFFSET($AU$68,LOOKUP(1,0/(AU$69:AU$69>0),ROW($1:1)),,,
4
),$AU$1:$AX$1),MOD(ROW(A1),
6
))
右拉到CC69下拉至CC73
範例檔:
[attach]30463[/attach]
如果再加上比對71列(同名次並排者,也是取同欄較小的數字,
請教您:公式要如何編寫?
PS:希望是2003版的一般數值型的陣列公式,不用一式到底完成,也不用"除錯"。
謝謝您^^
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)