Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1986|回复: 6

[已解决]单元格内数组公式的AND关系

[复制链接]
发表于 2016-6-4 13:30 | 显示全部楼层 |阅读模式
本帖最后由 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的用法和位置上出错,请帮忙诊断一下。 谢谢!!!


最佳答案
2016-6-17 12:00
=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))
按你的思路,这样写

Cell.TEXT Range.rar

8.29 KB, 下载次数: 1

 楼主| 发表于 2016-6-4 19:34 | 显示全部楼层
=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的位置是否有错
回复

使用道具 举报

 楼主| 发表于 2016-6-6 14:32 | 显示全部楼层
已上传附件, 里面的例子做了少许改动。
(注:刚做完手术那位就不要花时间去看了,谢谢)
回复

使用道具 举报

发表于 2016-6-17 11:44 | 显示全部楼层
思路有问题,不是用and

评分

参与人数 1 +1 收起 理由
cabcyvr + 1 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

发表于 2016-6-17 12:00 | 显示全部楼层    本楼为最佳答案   
=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))
按你的思路,这样写
回复

使用道具 举报

 楼主| 发表于 2016-6-22 21:59 | 显示全部楼层
solarhalo 发表于 2016-6-17 12:00
=SUM(N((IFERROR(MID($A2,ROW(INDIRECT("2:"&LEN($A2)-8)),4)-0,10000)=4500)=3))
按你的思路,这样写

之前以为 此问题从此石沉大海,昨天才猛然看到有回复,但还是隐隐有种”可能还是不行“的感觉。
今早测试后发现是目前最准确的答案。
公式中最重要的部分是 N , + 和 ”=3“ , 尤其是那个 ”=3“。。。。。
再次感谢 !  这是我研究了超过半年的问题。
我之前自己的解答只适用于按照正常书写规则写的范围描述(及从左到右按从小到大的四位数书写,比如”4001X4005R4800",但如果写成 “4005X4001R4800"就会出问题),上面的新公式帮我解决了此问题。

以下是我得到的所有反应(几个EXCEL论坛上回答问题者的反应,在此没有任何讽刺协助者的意思,只想说明得到最后的满意答案真的太不顺利)
1. 不屑一顾,认为没有任何意义
2. 喜出望外,回答是”我都不好意思说我会“,然后用截取公式进行最左边的四位数和最右边的四位数后给出”答案“。
3. 恼羞成怒,经过几次连续的指正说明解答还是有遗漏时,得到的答复是”我们任何一个人都没有义务去回答你的问题的“
4. 疑惑不断,问我为毛总是在这个问题上来来回回提问
5. 孜孜不倦,越战越勇,陆续给我介绍过 N 和 +的用法 , 就差那个 ”+3“。 (也要感谢那位热心助人的XY)

回复

使用道具 举报

发表于 2016-6-23 08:00 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 10:02 , Processed in 0.344801 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表