標題:
[發問]
符合所需代碼 前兩碼為 56、57、59,才能列入參考金額...
[打印本頁]
作者:
cypd
時間:
2021-2-2 22:00
標題:
符合所需代碼 前兩碼為 56、57、59,才能列入參考金額...
1.備註(E欄)及科目(F欄)欄位只有出現數字代碼前兩碼為 56、57、59 等
才能符合條件列入(G欄)參考金額(原本代碼有 5 位數取前兩碼)
2.備註欄有時會出現文字+代碼(例如_E8_補59005)
3.請問 G欄 答案公式該如何編寫>>>
[attach]33022[/attach]
[attach]33023[/attach]
作者:
准提部林
時間:
2021-2-3 10:43
固定五碼, 且文字在前面,
陣列公式:
=IF(OR(LEFT(RIGHT(E2:F2,5),2)={"56";"57";"59"}),D2,"")
作者:
hcm19522
時間:
2021-2-3 11:32
https://blog.xuite.net/hcm19522/twblog/589596291
作者:
cypd
時間:
2021-2-3 23:47
回復
2#
准提部林
感謝指導 ^^
唯一受限
若是文字在數字代碼後該公式無法辨識...
(文字在前且代碼為5位數答案正確)
作者:
cypd
時間:
2021-2-4 00:26
回復
3#
hcm19522
感謝指導 ^^
二欄前兩碼 任一為指定數 (8003)
在 https://blog.xuite.net/hcm19522/twblog/589596291 有詳細參考
[attach]33027[/attach]
作者:
ML089
時間:
2021-2-4 08:50
假設科目數字固定為5位數,其前方文字說明不超過9個
G2 =IF(OR(LEFT(MAX(IFERROR(--MID(E2&F2,{1,2,3,4,5,6,7,8,9},5),"")),2)={56,57,59}&""),D2,"")
作者:
准提部林
時間:
2021-2-4 10:49
本帖最後由 准提部林 於 2021-2-4 10:54 編輯
回復
4#
cypd
文字在前在後皆可, 數字不限五碼
陣列公式(三鍵輸入)
=IF(COUNT(0/TEXT(MID("/"&E2:F2,FIND({56;57;59},E2:F2),1),";;;!1")),D2,"")
或
=IF(COUNT(0/MID(E2:F2,FIND({56;57;59},E2:F2),5)),D2,"")
作者:
cypd
時間:
2021-2-4 15:03
回復
7#
准提部林
文字在前在後皆可, 數字不限五碼
針對查找...IF(COUNT(0/MID(E2:F2,FIND({56;57;59},E2:F2),5)),D2,"")...此公式為代碼中有符合 56 57 59 即帶出金額
此公式對所需數字代碼前兩碼為 56、57、59 等
才能符合條件列入(G欄)參考金額...該準則系指代碼 前兩碼 為要件喔!!
[attach]33035[/attach]
希望該公式能再修正以供參考...
作者:
cypd
時間:
2021-2-4 16:18
回復
6#
ML089
感恩阿 ^^
經實測
科目數字固定為5位數(可調整公式內數據),
其前方文字說明不超過9個...後面文字不拘
作者:
cypd
時間:
2021-2-4 16:25
回復
7#
准提部林
感恩指導回復 ^^
該公式為文字在前在後皆可, 數字不限五碼之限...完美呈現 :victory:
陣列公式(三鍵輸入)
=IF(COUNT(0/TEXT(MID("/"&E2:F2,FIND({56;57;59},E2:F2),1),";;;!1")),D2,"")
作者:
准提部林
時間:
2021-2-4 19:05
回復
8#
cypd
忘了開頭兩字,
=IF(COUNT(0/MID(E2:F2&
"|"
,FIND({56;57;59},E2:F2),5)),D2,"")
作者:
cypd
時間:
2021-2-4 22:31
回復
11#
准提部林
感恩不吝指導
經帶入公式...
[attach]33036[/attach]
顯示結果...
數字代碼受限於 5 個字(多一個數字或少一個數字無法正確顯示)
希望結果是...文字在前在後皆可, 數字不限五碼喔 ^^
(準則系指代碼 前兩碼為 56 57 59 符合為要件喔)
作者:
ML089
時間:
2021-2-6 09:51
G2 =IF(OR(IFERROR(MID("X"&E2:F2,FIND({56;57;59},E2:F2),1),"")>"9"),D2,"")
陣列輸入
數字不限長,前後可以有文字不限長
作者:
cypd
時間:
2021-2-6 17:19
回復
13#
ML089
感恩囉啦阿 ^^
經實測
備註或科目數字位數不限為5位數(所需代碼會取 前兩碼為 56、57、59),
其前、後方文字說明字數不拘
該公式經簡化後為文字在前在後皆可, 數字上限為20位數之限...十全十美
作者:
Andy2483
時間:
2023-12-27 07:53
謝謝論壇,謝謝各位前輩
後學藉此帖練習VBA,學習方案如下,請各位前輩指教
執行前:
[attach]37185[/attach]
執行結果:
[attach]37186[/attach]
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
作者:
cypd
時間:
2023-12-28 00:08
回復
15#
Andy2483
感謝 Andy2483 提供不同解法
關於 字元位置_備註 = InStr("|65|75|95|", "|" & Right…
其中 "|65|75|95|" 神奇的解法呢 ^^
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)