返回列表 上一主題 發帖

[發問] 符合所需代碼 前兩碼為 56、57、59,才能列入參考金額...

回復 8# cypd

忘了開頭兩字,
=IF(COUNT(0/MID(E2:F2&"|",FIND({56;57;59},E2:F2),5)),D2,"")

TOP

回復 11# 准提部林

感恩不吝指導

經帶入公式...


顯示結果...
數字代碼受限於 5 個字(多一個數字或少一個數字無法正確顯示)
希望結果是...文字在前在後皆可, 數字不限五碼喔   ^^
(準則系指代碼   前兩碼為 56 57 59  符合為要件喔)

TOP

G2 =IF(OR(IFERROR(MID("X"&E2:F2,FIND({56;57;59},E2:F2),1),"")>"9"),D2,"")
陣列輸入

數字不限長,前後可以有文字不限長
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 13# ML089

感恩囉啦阿   ^^

經實測
備註或科目數字位數不限為5位數(所需代碼會取 前兩碼為 56、57、59),
其前、後方文字說明字數不拘
該公式經簡化後為文字在前在後皆可, 數字上限為20位數之限...十全十美

TOP

謝謝論壇,謝謝各位前輩
後學藉此帖練習VBA,學習方案如下,請各位前輩指教
執行前:


執行結果:


Option Explicit
Sub TEST()
Dim 資料陣列, i&, 字元位置_備註%, 字元位置_科目%
資料陣列 = Range([F2], [D65536].End(xlUp))
For i = 1 To UBound(資料陣列)
   字元位置_備註 = InStr("|65|75|95|", "|" & Right(Val(StrReverse(資料陣列(i, 2))), 2) & "|")
   字元位置_科目 = InStr("|65|75|95|", "|" & Right(Val(StrReverse(資料陣列(i, 3))), 2) & "|")
   If 字元位置_備註 + 字元位置_科目 = 0 Then 資料陣列(i, 1) = ""
Next
[B2].Resize(UBound(資料陣列)) = 資料陣列
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 15# Andy2483

感謝 Andy2483 提供不同解法
關於 字元位置_備註 = InStr("|65|75|95|", "|" & Right…
其中 "|65|75|95|" 神奇的解法呢  ^^

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題