|
本帖最后由 cabcyvr 于 2016-6-6 14:29 编辑
A2内有以下文本内容
/3900X4001R4888X5000X4400R5200
注:
4002X4700表示两个独立的数字4002 和 4700
4008R4800表示从4008到4800之间的数字范围(即包括了4010和4008)
可能会出现1个以上的合乎条件的情况
目的:
分别在B2输入公式,自动识别A2中是否有包含4500的范围描述 (比如 4430R4501)
之前在B2尝试过以下数组计算每符合条件的范围描述,估计是AND的位置出错或是语法不对,正确结果应该是2
以第7个字符位置为例,满足条件为
向右截取4个字符(范围为7-10)转换成数字后要小于或等于4500 (并且AND)
向右数第5个字符(即7+4=第11个字符)必须是R (并且AND)
向右偏移5个位置后截取4个字符(即从7+5=12的位置向右截取4个字符转换成数字后要大于或等于4500
因为上面的4001R4888和4400R5200两个范围描述都同时满足三个条件,所以答案为2
=SUM(and(N(IFERROR(MID(A2,ROW(INDIRECT("2:"&LEN(A2)-8)),4)-0,10000)<=4500),
N(MID(A2,ROW(INDIRECT("2:"&LEN(A2)-8))+4,1)="R"),
N(IFERROR(MID(A2,ROW(INDIRECT("2:"&LEN(A2)-8))+5,4)-0,-1)>=4500)))
问题估计是在AND的用法和位置上出错,请帮忙诊断一下。 谢谢!!!
=SUM(N((IFERROR(MID($A2,ROW(INDIRECT("2:"&LEN($A2)-8)),4)-0,10000)<=4500)+
(MID($A2,ROW(INDIRECT("2:"&LEN($A2)-8))+4,1)="R")+
(IFERROR(MID($A2,ROW(INDIRECT("2:"&LEN($A2)-8))+5,4)-0,-1)>=4500)=3))
按你的思路,这样写
|
|