作者ddqueen (呼~呼~叔叔覺得妳好可愛~)
看板Office
標題[算表]在B行將A行中有*Z*W*D*的列打V
時間Mon Mar 4 02:48:41 2019
軟體:Excel 2003
版本:
大家好,我又來發問了。
現在A行中的每個儲存格都有一個單字。
我想找*Z*W*D*的單字,若是符合條件,想在B行的那一列打V。
請問涵數要如何寫?
*Z*W*D*的意思是,*代表萬用符合(可表0個或多個字)。
舉個列字,aZWxD符合,aZyyyWxDii符合,ZWD符合,ZaWDe符合。
也不是只要用ZWD三個字母就好,不管前面有沒有其他字母,或是中間有沒有隔多少字,
這三個字母中,Z必需在前面、W在中間、D在後面。
這樣有了解我的意思嗎?
若是只有ZWD的話,我會寫。
=IF(ISERROR(IF(FIND("ZWD",A5317)>=1,"v","")),"",IF(FIND("ZWD",A5317)>=1,"v",""))
可是*Z*W*D*的狀況我就不會寫了。
請教我好嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.196.249
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1551638924.A.510.html
2F:→ AirRider: s大,這樣搜出來ZED的順序問題似乎沒考慮? 03/04 08:06
3F:→ AirRider: 抱歉,ZWD 03/04 08:06
4F:→ AirRider: 啊抱歉看懂了 03/04 08:07
5F:→ ddqueen: 謝啦,Soyoso,每次都麻煩您。原來公式要這樣,感恩! 03/04 09:53
不好意思,又有新的問題,因為要查的條件太多了,除了*Z*W*D*之外,還有很多種,我
想寫在B1、C1、D1、E1、……,隨時會增加,然後符合條件的它會自動跑出"V"。
就是在從B1開始的第一列內只要填入條件,如ZWD、AABBX、*ZWD*、*Z*W*D*、*RRS*
、*ZO*F*、*O*W*D*……等等,隨時增加,只要在第一列增加條件,它就會跑出來,這樣
我整個公式要怎麼寫呢?
※ 編輯: ddqueen (114.36.225.23), 03/04/2019 12:25:04
感謝您,這就是我要的。
不過再請教您,有二個條件我不知怎寫,
就是倒數第四個字等於倒數第三個字、「並且」倒數第二個字等於到數第一個字。
我是寫成如下
=IF(AND(MID(A2,LEN(A2)-3,1)=MID(A2,LEN(A2)-2,1),MID(A2,LEN(A2)-1,1)=MID(A2,LEN(A2),1)),"V","")
我想請教您,是否有辦法和上面的一樣,我把條件寫在第一列,然後下面的公式就會自已
帶出來? 我就是不知該如何把我這個條件寫出來在第一列。
※ 編輯: ddqueen (114.36.225.23), 03/04/2019 14:24:24
7F:→ soyoso: 如果是要調整倒數第幾個字或是條件的數量的話 03/04 16:05
9F:→ soyoso: 自訂名稱以evaluate 03/04 16:07
10F:→ soyoso: 第1列內的字串以substitute將)取代+1,1),將@取代為回文公 03/04 16:11
11F:→ soyoso: 式內mid(...- 到減號的部分;因列號要隨拖曳改變,請加入 03/04 16:12
12F:→ soyoso: 函數row()以&符號連接 03/04 16:13
13F:→ soyoso: 前後and(和最後的)一樣,加入以&連接 03/04 16:15
14F:→ soyoso: 目的是以取代方式達到回文內and(mid()=mid(),....)這樣的 03/04 16:18
15F:→ soyoso: 字串,再於名稱以evaluate運算後回傳 03/04 16:19
16F:→ soyoso: 2003的話名稱是在插入內定義,用該方式的話巨集安全性請調 03/04 16:25
17F:→ soyoso: 低 03/04 16:25
謝謝您。
※ 編輯: ddqueen (114.36.225.23), 03/04/2019 17:00:22
又有一個問題,如果我的條件是只要有R、P、D、K這四個字母,不分順序的話,函數要如
何寫?我試著寫如下,但是結果我寫錯了、不會寫。
=IF(COUNTIF($A2,AND(R,P,D,K)),"V","")
結果EXCEL說我寫錯了……。
※ 編輯: ddqueen (114.36.243.148), 03/06/2019 02:17:55
成功了,我寫成如下
=IF(AND(COUNTIF($A2,"*R*")>0,COUNTIF($A2,"*P*")>0,COUNTIF($A2,"*D*")>0,COUNTIF($A2,"*K*")>0),"V","")
可是好長,請問有更簡略的寫法嗎?
※ 編輯: ddqueen (114.36.243.148), 03/06/2019 02:32:52
謝謝你喔。
※ 編輯: ddqueen (114.25.195.252), 03/06/2019 12:02:04
請問為什麼有大括弧?又是陣列模式嗎?
※ 編輯: ddqueen (114.25.195.252), 03/06/2019 13:40:19
19F:→ soyoso: 這個括弧為稱為矩陣常數或常數陣列,而非按下組合鍵ctrl+ 03/06 13:49
20F:→ soyoso: shift+enter陣列公式外層所加上的那種 03/06 13:50
那請問一下,若是條件改成,只要有R、P、D、K這四個字母中任一個的話呢?
※ 編輯: ddqueen (114.36.243.27), 03/08/2019 23:37:34
以W、S、X三個字母中的任一個為條件,只要出現任一個字母就不要打勾,我是寫成
=IF(SUM(COUNTIF(A2,"*W*"), COUNTIF(A2,"*S*"),COUNTIF(A2,"*X*"))>0,"","V")
請問上面這個函數可以再優化嗎?
※ 編輯: ddqueen (114.36.243.27), 03/09/2019 00:52:25
21F:→ soyoso: R、P、D、K任一個就回傳"v"的話,就為sum(--(countif(...) 03/09 09:43
22F:→ soyoso: =1)),將要回傳"v"的字串改至value_if_true 03/09 09:45
23F:→ soyoso: W、S、X任一個就回傳空字串的話,同上,將回傳"v"字串改至 03/09 09:47
24F:→ soyoso: value_if_false 03/09 09:47
謝,我來研究看看。
※ 編輯: ddqueen (114.25.197.174), 03/11/2019 02:02:58