作者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/cn.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