本帖最后由 准提部林 于 2017-2-14 10:50 编辑
請為各分店會員卡編號列出連續碼
E-Home公司在〔廣州.北京.杭州.上海〕都設有分店,
每周各店會將所發出的會員卡〔起始號碼〕及〔結束號碼〕傳回公司,
會員編號以一個〔英文碼〕及4~8位數字組成,且號碼不會有重覆。
希望在 E3 寫一公式,可右拉下拉列出各分店的會員卡連續號碼,
當公司人員在A3:C15逐一輸入時,可逐步顯示結果,且不出現錯誤值。
~~純公式.一式完成~~
請各位高手不吝指教,提供智慧結晶供後進觀摩學習,
公式長短及版本不拘(2007以上版本恕無法驗證),
鮮花有限,若有遺漏請包涵!
參考附件:
TT20170212-01.rar
(2.36 KB, 下载次数: 41)
=========================
<結語>
__本題看似複雜,但其〔不重覆〕編碼是可突破的,
而且只要平常思路即可解決,以下是個人的〔冷盤〕及〔家常菜〕:
1:=IF(E2="","",IF(OR(ROW()=3,$C$3:$C$15=E2),INDEX($B:$B,SMALL(IF($A$3:$A$15=E$2,ROW($3:$15),4^8),SUM(COUNTIF($C:$C,E$2:E2))+1)),LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9))&"")
2:=IF(E2="","",IF(OR(E2=E$2,$C$3:$C$15=E2),INDEX($B:$B,SMALL(IF($A$3:$A$15=E$2,ROW($3:$15),4^8),SUM(COUNTIF($C:$C,E$2:E2))+1)),LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9))&"")
3:=LOOKUP("z",IF({1,0},"",IF(OR(E2=E$2,$C$3:$C$15=E2),VLOOKUP(E$2,OFFSET($A$1,IF(E2=E$2,,MATCH(E2,$C:$C,)),,99,3),2,),LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9))))
4:=LOOKUP("z",IF({1,0},"",IF(OR(E2=E$2,COUNTIF($C$3:$C$15,E2)),VLOOKUP(E$2,OFFSET($A$1,IF(E2=E$2,,MATCH(E2,$C:$C,)),,99,3),2,),LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9))))
__接著〔最精華〕的〔海鮮極品〕,是我最想不到的:
13樓:=IF(MAX(MMULT(COUNTIF(E$2:E2,$A$3:$C15),{1;1;-1}))=2,LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9),LOOKUP(,0/FREQUENCY(1,($A$1:$A15=E$2)-COUNTIF(E$2:E2,$C$1:$C15)),$B:$B)&"")
17樓:=LOOKUP("咗",IF({1,0},LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9),INDEX($B:$B,MATCH(2,FREQUENCY({1,2},MMULT(COUNTIF(E$2:E2,$A$1:$C15),{2;-1;-1})),))&""))
17樓:=IFNA(INDEX($B:$B,MATCH(2,FREQUENCY({1,2},MMULT(COUNTIF(E$2:E2,$A$1:$C15),{2;-1;-1})),)),LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9))&""
19樓:=LOOKUP("咗",CHOOSE(FREQUENCY({1,2},MMULT(COUNTIF(E$2:E2,$A$1:$C15),{2;-1;-1})),LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9),$B$1:$B16&""))
***19樓公式是〔神來之手〕,望之莫及~~
__還有.piny版主的進階式:
=IF(-1^SUM(COUNTIF(E$2:E2,$B$3:$C15))+1,LOOKUP(,0/FREQUENCY(1,($A$1:$A15=E$2)-COUNTIF(E$2:E2,$C$1:$C15)),$B:$B)&"",LEFT(E2)&MID((1&MID(E2,2,9))+1,2,9))
~~謝謝各位.獲益良多~~
|