Board logo

標題: [發問] 文字不同 EXCEL當作一樣= = [打印本頁]

作者: toxin    時間: 2012-7-5 13:41     標題: 文字不同 EXCEL當作一樣= =

本帖最後由 toxin 於 2012-7-5 13:43 編輯

請問各位大師
現有兩字串
字串A:φ110*150L
字串B:φ110*50L
搜尋時A會當作跟B一樣
B不會跟A相同
也就是說Application.SumIf
的時候累加數量
A有10個
B有20個
會變成
A有10個
B變成10+20共30個
如附件表1中463列跟465列
[attach]11584[/attach]
作者: kimbal    時間: 2012-7-5 21:06

本帖最後由 kimbal 於 2012-7-5 21:08 編輯

先把"*" 轉為"~*"
例如
Application.SumIf(Sheets("進庫").Range("C:I"), Range("A" & IA), Sheets("進庫").Range("I:I"))
轉為
  1. Application.SumIf(Sheets("進庫").Range("C:I"), replace(Range("A" & IA).value,"*","~*"), Sheets("進庫").Range("I:I"))
複製代碼
*在搜尋時是百搭字符的意思,   要找*的話要在 *前加上~號
作者: a8350070    時間: 2012-7-5 21:15

雖然沒辦法下載檔案,但大概猜得出問題出在那裡

* 是萬用字元,欲取消其萬用字元特性必需在前面加~符號,例如 ~*

用公式的話試試將A1參照改為SUBSTITUTE(A1,"*","~*")
例如
=SUMIF(A:A,SUBSTITUTE(A1,"*","~*"),B:B)

用巨集的話試試將[A1]參照改為REPLACE(A1,"*","~*")
例如
= WorksheetFunction.SumIf(Range("A:A"), Replace([A1], "*", "~*"), Range("B:B"))
作者: toxin    時間: 2012-7-6 08:07

本帖最後由 toxin 於 2012-7-6 08:08 編輯

回復 2# kimbal
回復 3# a8350070

原本也有想過可能是*的關係
但是....
如果是這樣
總共4個相關字串應該也會有搜尋錯誤的情況
字串分別為
φ110*150L
φ110*200L
φ110*50L
φ110*100L
但是只有第三個
會累加第一個跟第三個字串的數量
作者: toxin    時間: 2012-7-6 08:13

回復 2# kimbal

忘記說
改成這樣就可以了
感謝大師
作者: a8350070    時間: 2012-7-6 22:49

回復  kimbal
回復  a8350070

總共4個相關字串應該也會有搜尋錯誤的情況
字串分別為
φ110*150L
φ110*200L
φ110*50L
φ110*100L
但是只有第三個
會累加第一個跟第三個字串的數量
toxin 發表於 2012-7-6 08:07


如果能明瞭*的萬用字元特性的話就不難理解為何如此了
φ110*150L    能符合 φ110*50L 的規則 ,因 *1 能以 * 作涵蓋
但是 φ110*50L  不能符合 φ110*150L的規則 , 因為少了一個 1 字元
作者: toxin    時間: 2012-7-10 14:12

回復 6# a8350070
大致上了解了
感謝"a8350070"大大的回覆




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