Board logo

標題: 比對並判斷顯示訊息問題 [打印本頁]

作者: jsc0518    時間: 2017-1-21 15:42     標題: 比對並判斷顯示訊息問題

我有設定Excel函數,但很快就卡到了,而且我都一直用IF的方式循環,但還是錯誤
=IF(MID(B5,10,4)=MID(H5,10,4),IF(MID(B5,10,5)=MID(H5,10,5),"",IF(MID(B5,14,14)<>MID(H5,14,14),"版本升級",IF(MID(B5,10,5)<>MID(H5,10,5),"更改料號",IF(B5="",IF(H5<>"","新增料號","刪除料號"))))))

我想設定的條件是
當B欄比對H欄時
1.最後一碼不一樣,F欄顯示"版本升級"
2.後面五碼不一樣,F欄顯示"更改料號"
3.當B欄與H欄數字完全一樣時,F欄顯示""
4.當B欄有資料,H欄是空白,F欄顯示"刪除料件"
5.當H欄有資料,B欄是空白,F欄顯示"新增料件"

[attach]26431[/attach]

[attach]26432[/attach]
作者: ML089    時間: 2017-1-21 18:54

回復 1# jsc0518
=IF(B3=H3,"",IF(AND(B3="",H3<>""),"新增料件",IF(AND(B3<>"",H3=""),"刪除料件",IF(AND(LEFT(B3,13)=LEFT(H3,13),RIGHT(B3,1)<>RIGHT(H3,1)),"版本升級",IF(AND(LEFT(B3,9)=LEFT(H3,9),RIGHT(B3,5)<>RIGHT(H3,5)),"更改料號","?")))))
作者: jsc0518    時間: 2017-1-21 22:12

回復 2# ML089


    ML089,感謝您提供的公式,我會好好學習。謝謝!
作者: ML089    時間: 2017-1-22 00:18

回復 1# jsc0518

在簡化一下公式
=IF(AND(B3="",H3<>""),"新增料件",IF(AND(B3<>"",H3=""),"刪除料件",LOOKUP(,0/(LEFT(B3,{9,13,14})=LEFT(H3,{9,13,14})),{"更改料號","版本升級",""})))
作者: ML089    時間: 2017-1-22 07:59

再簡化

=IF(COUNTA(B3,H3)=1,IF(B3="","新增料件","刪除料件"),LOOKUP(,0/(LEFT(B3,{9,13,14})=LEFT(H3,{9,13,14})),{"更改料號","版本升級",""}))
作者: jsc0518    時間: 2017-1-22 09:36

回復 5# ML089

請問 --> (LEFT(B3,{9,13,14}) 這段的意思是?
另外 { } 這是代表?
作者: jsc0518    時間: 2017-1-22 09:43

回復 5# ML089


您好,可以教我一下
LOOKUP(,0/(LEFT(B3,{9,13,14})=LEFT(H3,{9,13,14})),{"更改料號","版本升級",""}
用法及意思嗎
作者: hcm19522    時間: 2017-1-22 12:37

http://blog.xuite.net/hcm19522/twblog/482139178
作者: ML089    時間: 2017-1-22 18:42

回復 8# jsc0518

請問 --> (LEFT(B3,{9,13,14}) 這段的意思是?
另外 { } 這是代表?

{ } 是陣列運算符號,LEFT(B3,{9,13,14}) 表示為 LEFT(B3,9) 、LEFT(B3,13) 、LEFT(B3,14) 三個陣列項目
作者: jsc0518    時間: 2017-1-23 20:05

回復 5# ML089


ML089  您好

若是要在新增條件,我要如何更改公式? (感謝您的教導)
版本升級  --> 最後一碼不一樣,且最後一碼數字差距為+1
更改料號  -->  最後一碼不一樣,且最後一碼兩筆數字差距有2以上
更改料號  -->  後面九碼不一樣
如附圖

[attach]26444[/attach]
作者: jsc0518    時間: 2017-1-23 21:15

回復 8# hcm19522


謝謝您提供的公式歐!
作者: ML089    時間: 2017-1-23 23:30

回復 10# jsc0518


    =IF(COUNTA(B3,H3)=1,IF(B3="","新增料件","刪除料件"),LOOKUP((0&SUBSTITUTE(H3,".",))-(0&SUBSTITUTE(B3,".",)),{0,1,2},{"","版本升級","更改料號"}))
作者: jsc0518    時間: 2017-1-24 08:29

回復 12# ML089



ML089
在最後一欄位,條件為後面九碼不一樣-->更改料號
有錯誤!





[attach]26447[/attach]
作者: ML089    時間: 2017-1-24 23:43

回復 13# jsc0518

我測試OK

你傳檔案上來看看
作者: jsc0518    時間: 2017-1-25 07:15

回復 14# ML089


我這檔案已加上你的公式
再請你看一下,Thanks!

[attach]26459[/attach]
作者: ML089    時間: 2017-1-25 07:21

回復 15# jsc0518

因為H9-B9為負數而錯誤,加ABS(...)改為正就可以。
=IF(COUNTA(B3,H3)=1,IF(B3="","新增料件","刪除料件"),LOOKUP(ABS((0&SUBSTITUTE(H3,".",))-(0&SUBSTITUTE(B3,".",))),{0,1,2},{"","版本升級","更改料號"}))
作者: jsc0518    時間: 2017-1-25 12:27

回復 16# ML089


  測試正常,謝謝你的熱心指導。感恩!




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