Board logo

標題: 依據限制條件自動填入判斷 [打印本頁]

作者: jsc0518    時間: 2019-1-8 22:02     標題: 依據限制條件自動填入判斷

本帖最後由 jsc0518 於 2019-1-8 22:07 編輯

Dear 大大,

我想在excel  I欄為中設定判斷式,它是依據C欄中的資訊(倒數後面那幾碼)
判斷後,在I欄列自動填上"指定字元-白色、黃色、藍色),若都不符合的話就空白
[attach]29902[/attach]

判斷說明如下圖
[attach]29903[/attach]

[attach]29904[/attach]
作者: adrian_9832    時間: 2019-1-9 09:13

用了笨的法子 其他的 你需要的條件 你可以跟我那樣 去增加下去
作者: hcm19522    時間: 2019-1-9 10:07

https://blog.xuite.net/hcm19522/twblog/586230824
作者: clio    時間: 2019-1-9 10:21

回復 3# hcm19522
拜讀了hcm19522的方法,真的受益良多,感謝您
作者: clio    時間: 2019-1-9 14:37

回復 3# hcm19522
hcm19522大大
小的拆解這個程式後,有些地方仍不是很了解,能否請您幫我釋疑呢?感謝您
FIND("+"&K$5:K$13,C5)/(K$5:K$13>0),這邊大約知道在C5內分別將"+" &K5, "+"&K6...到"+"&K13代入搜尋看是否有符合的字串,但是後面再/(K$5:K$13>0)的用意為何呢?
作者: clio    時間: 2019-1-9 14:46

回復 3# hcm19522
hcm19522大大,
另外再請教一下,如下圖,我把【FIND("+"&K$5:K$13,C5)】這個公式另外抓出在橘色的部份,觀察結果數值,但是出現的數值,我不是很能理解,
第一個12,可以知道在C5中有被找到+N,位置在12的部份,但是為什麼C6的應該也要找到,卻出現#VALUE!的部份,若是說,因為他是一個K5:K13的陣列結果,只會看到K5的比對結果,為什麼在C8的地方又能找顯示14呢
[attach]29914[/attach]
作者: hcm19522    時間: 2019-1-9 15:43

回復 6# clio

FIND("+"&K$5:K$13,C5)形成陣列 ,非單一 -->{12;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;12;12}-->第一12為K5 ,最後二個12為後面空白欄 ;所以再加 "/(K$5:K$13>0)" 排除空白欄的設定 -->配合LOOKUP做選擇
作者: clio    時間: 2019-1-9 15:57

回復 7# hcm19522
感謝hcm19522,這樣這個我了解了,萬分感謝您
作者: jsc0518    時間: 2019-1-9 21:41

回復 2# adrian_9832
您好,感謝您的回覆,我有把我要的條件再新增上去
TEST OK
THANKS!
作者: jsc0518    時間: 2019-1-9 21:42

回復 3# hcm19522
感謝您的回覆歐,這方法也不錯用,感謝!:)
作者: hcm19522    時間: 2019-1-10 09:57

回復 5# clio


    (較周全) 例 :N 與 N後面有字符會出錯=IFERROR(LOOKUP(1,0/FIND("+"&K$5:K$13&"+","+"&C5&"+"),L$5:L$13),"")
作者: clio    時間: 2019-1-10 10:42

回復 11# hcm19522
hcm19522前輩…
小的對於這個問題還是不太懂
我把【FIND("+"&K$5:K$13,C5)】這個公式另外抓出在橘色的部份,觀察結果數值,但是出現的數值,我不是很能理解,
第一個12,可以知道在C5中有被找到+N,位置在12的部份,但是為什麼C6的應該也要找到,卻出現#VALUE!的部份,若是說,因為他是一個K5:K13的陣列結果,只會看到K5的比對結果,為什麼在C8的地方又能找顯示14呢
他的顯示應該是一個陣列的各別結果,但是以圖面來看又不是都顯示第一筆,或是能找到的那一筆,所以搞不清楚是顯示什麼的呢?
[attach]29925[/attach]
作者: hcm19522    時間: 2019-1-10 15:15

回復 12# clio

FIND("+"&K$5:K$13,C5) 下拉 同FIND("+"&K5,C5) 所以FIND("+"&K$5:K$13,C5)數列  尚須再找非錯誤的位置 L值
FIND("+"&K$5:K$13&"+",C5&"+") 才周全
作者: clio    時間: 2019-1-10 17:03

回復 13# hcm19522
hcm19522大大,
不好意思,由於小弟比笨一點,照您的細心解釋又去做了測試,如下圖
確實橘色部份,會像藍色的結果一樣,但是因為我們設定的是K$5:K$13,所以當位置超過9,在10位時就都會出現#VALUE!,所以在橘色M14以後的他是等於FIND("+"& Y, C14),這個Y的位址會是什麼呢?

[attach]29931[/attach]
作者: hcm19522    時間: 2019-1-10 17:57

本帖最後由 hcm19522 於 2019-1-10 18:04 編輯

回復 14# clio

FIND("+"&K$5:K$13,C5)單此公式是無意義 所以下拉都不是想要 須配合LOOKUP

公式二=IFERROR(LOOKUP(1,0/(MID(C5,FIND("+",C5),9)&"+"="+"&K$5:K$13&"+"),L$5:L$13),"")


FIND("+"& Y, C14)-->位址要有英文字母+數字 ,若是字符 要+雙引號 或 "+Y"
作者: clio    時間: 2019-1-11 09:27

回復 15# hcm19522
了解…那我就不執著了…感謝hcm19522的耐心解說
作者: 准提部林    時間: 2019-1-12 10:46

若"+"都在最後
=iferror(VLOOKUP(MID(C5,FIND("+",C5)+1,9),K:L,2,),"")

K欄索引值必須是[文字格式]
[attach]29944[/attach]




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