|
我来试着解决一下这个问题(首先要把B2—J2单元格中的数字转换为文本形式,另外如同13楼的朋友一样,把10开始的数字用英文字母依次排序),这个问题刚拿到的时候,可以大致想到应该是一个条件判断类型的问题,那么针对这个问题,我们考虑,某周到底应该被填充为1,还是空白,有什么规律呢?如果我们在纸上画一画,我想你会发现,某周应该被填充为什么,与它前一周有紧密的关系,那么,我在这里以第7周,第A3单元格作为数据源为例,说说第7周被填充为什么,和第六周有什么关系。
1、如果A3中只要有“7”,那么说明肯定有第7周,不管是“7,”,“-7”,“7-”等字样
2、如果A3中有“6-”也必然有第7周。至于为什么,我想我不用说了。
上面两个是“必然有”,那么既然是必然有,而且是只要满足上述的其中任何一个条件,就“必然有”,那么我们可以想到是OR的关系。我们可以先写成IF(OR(ISNUMBER(FIND(H$2,$A3)),ISNUMBER(FIND(G$2&"-",$A3))),1,其他的可能性)----式子1。
接下来是几个“必然无”:
3、如果A3单元格的右起第一个字符就是“6” ,那么,第七周肯定为空白。
4、如果A3中有“6,”那么第7周必然为空白。因为A3单元格的内容不可能出现例如:3—6,7---
这样的情况。
5、如果A3中有“-6”,那么第7周必然为空白,大家参照第一条想想为什么。
3、4和5条是三个必然为空白的情况,而且只要满足上述的其中任何一个条件,就“必然为空”,同样我们想到是OR的关系。我们可以写成:IF(OR(RIGHT($A3,1)=G$2,ISNUMBER(FIND(G$2&",",$A3)),ISNUMBER(FIND("-"&G$2,$A3))),"", 其他的可能性)------式子2。
我们将式子2带到式子1中得到:
=IF(OR(ISNUMBER(FIND(H$2,$A3)),ISNUMBER(FIND(G$2&"-",$A3))),1,IF(OR(RIGHT($A3,1)=G$2,ISNUMBER(FIND(G$2&",",$A3)),ISNUMBER(FIND("-"&G$2,$A3))),"",其他的可能性))-----式子3
现在我们要完成的是,当我们列举了1,2,3,4,5这几个必然之后,还有那些情况是没有包含在1,2,3,4,5这五条规律中的呢?有以下几个:比如仍以第7周为例,当A3单元格中为类似于“2-4”(范围跨度中不含7,且在7的前面),或者“2-8”(范围跨度中包含7)或者“8-9”(范围跨度中不含7,且在7的后面。)对于式子3来说,这三种情况发生的时候,我们应该让IF语句执行什么呢?其实就是执行前一个单元格的内容,即第6周被填充了什么。如何想到这里呢,因为我们让第7周的单元格填充前一周的内容,其实依次往前推,每个单元格在最后不满足1,2,3,4,5,这五条规律的时候,都会去填充前一个单元格的内容,这有些像递推公式。比如说A3是“2-8”,第2周满足上述五条中的第1条,则被填充为“1”;第3周满足上述五条中的第2条,则被填充为“1”;第四周不满足上述五条中的任何一条,因此填充为它的前一周,也就是第二周的内容,即“1”;第五周到第7周和第四周的原因一样,都被填充为“1”;第8周满足上述五条中的第1条,则被填充为“1”;第9周满足上述五条中的第5条,因此被填充为空白;第A(就是第10周)周以后,都因为不满足上述五条中的任何一条,因此填充为它的前一周,而自此以后,它们的前一周都成为了空白。
周数.rar
(10.25 KB, 下载次数: 23)
|
|