...中多个函数公式,怎么直接用上个函数的公式结果运算下个函数?_百 ...

发布网友 发布时间:2024-10-23 21:01

我来回答

3个回答

热心网友 时间:2024-11-01 19:58

不需要复制粘贴为数值的,函数可以直接作为结果参与下一个函数的运算,只是我们要注意数据类型——典型就是文本、数值的问题,需要适当的类型转换,否则公式结果和我们想象的不同。


例1:请看下图:

LEFT(A1,4)的结果明明是2018,应该小于2021的,为什么值为FALSE呢,粘贴为数值后是正确判断2018<2021的,问题就在于LEFT的结果实际上是文本的2018,要转换后进行判断,见例2


例2:请看下图:

本例子中--LEFT(A1,4)能把文本的2018转换为数值2018,因此系统判断就准确了,当然也可以都转换为文本进行判断,文本支持带字母的比较,但是注意文本是从左边开始对比,长度不同的时候比较迷惑


例3:转换为文本也能正确进行对比



最后再来解答你的题目,先粘贴一下三个公式:

公式1(AH=》AI):

=IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) 

公式2(AJ=》AK):=IF(OR(AI6<2006,AI6=2015),"1",IF(OR(AI6=2006,AI6=2008,AI6=2012,AI6=2014,AI6=2016,AI6=2018),"2",IF(AI6=2010,"3","4"))) 

公式3(AL,最终):

=IF(AND(AK6=1,H6-R6=1,I6-S6=1),"正确",IF(AND(AK6=2,I6+1=S6),"正确",IF(AND(AK6=3,H6-1=R6),"正确",IF(AND(AK6=4,H6=R6,I6=S6),"正确","错误"))))


第一步,公式1作为AI带入公式2:

=IF(OR(--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) <2006,--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2015),"1",IF(OR(-IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2006,--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2008,--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2012,--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2014,--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2016,--IF(ISNA(MID(C6,1,4)),"",MID(C6,1,4)) =2018),"2",IF(AI6=2010,"3","4"))) 

这下子我受不了了,太复杂了,看来公式2需要变形

再次粘贴公式2进行:

=IF(OR(AI6<2006,AI6=2015),"1",IF(OR(AI6=2006,AI6=2008,AI6=2012,AI6=2014,AI6=2016,AI6=2018),"2",IF(AI6=2010,"3","4"))) 

理解含义是根据公式1得出的年度判断结果为1、2、3、4,初步觉得可以使用VLOOKUP,来写,试试看:

=VLOOKUP(IF(ISNA(MID(C6,1,4)),0,MID(C6,1,4)+0)

,{0,4;1,1;2006,2;2007,4;2008,2;2009,4;2010,3;2011,4;2012,2;2013,4;2014,2;2015,1;2016,2;2017,4;2018,2;2019,4}

,2);

写完了,这个VLOOKUP三个参数,第一个参数是公式1稍微变形计算的数值结果,为0、或者正常年度,第二个参数是对照表,用分号分开的对照关系,年度要从小到大写,0为4、1-2006得2、2007-2018列出来表,2019及以上都是4


下载把公式写到一行上得到简化后的公式2:

=VLOOKUP(IF(ISNA(MID(C6,1,4)),0,MID(C6,1,4)+0),{0,4;1,1;2006,2;2007,4;2008,2;2009,4;2010,3;2011,4;2012,2;2013,4;2014,2;2015,1;2016,2;2017,4;2018,2;2019,4},2);


先看看公式3:

=IF(AND(AK6=1,H6-R6=1,I6-S6=1),"正确",IF(AND(AK6=2,I6+1=S6),"正确",IF(AND(AK6=3,H6-1=R6),"正确",IF(AND(AK6=4,H6=R6,I6=S6),"正确","错误"))))

这个使用AK6的次数太多,虽然把上面的公式2替换AK6能得到正确的结果,但是这样公式太长,我们先看看能否想办法先简化公式3,理解公式3的含义是区分AK6为1、2、3、4的情况下进行不同的判断,我想用MID来写,模式为:

=MID("A正确错误正确错误",AK6*2,2)

第一个参数是一个填充字符开始的四种情况判断的链接,当AK6等一1、2、3、4的时候从2、4、6、8取两个字符,那么公式为:

=MID("A"

&IF(AND(H6-R6=1,I6-S6=1),"正确","错误")

&IF(I6+1=S6,"正确","错误")

&IF(I6-1=R6,"正确","错误")

&IF(AND(H6=R6,I6=S6),"正确","错误")

,VLOOKUP(IF(ISNA(MID(C6,1,4)),0,MID(C6,1,4)+0),{0,4;1,1;2006,2;2007,4;2008,2;2009,4;2010,3;2011,4;2012,2;2013,4;2014,2;2015,1;2016,2;2017,4;2018,2;2019,4},2)*2

,2)


交卷,请老师审核。

热心网友 时间:2024-11-01 19:52

AJ6公式:
=IF(OR(AH6<2006,AH6=2015),"1",IF(OR(AH6=2006,AH6=2008,AH6=2012,AH6=2014,AH6=2016,AH6=2018),"2",IF(AH6=2010,"3","4")))、
把所有AI替换成AH
AL6公式:
=IF(AND(AJ6=1,H6-R6=1,I6-S6=1),"正确",IF(AND(AJ6=2,I6+1=S6),"正确",IF(AND(AJ6=3,H6-1=R6),"正确",IF(AND(AJ6=4,H6=R6,I6=S6),"正确","错误"))))
把所有AK替换成AJ
这样就不用复制黏贴了
你的问题很简单 还是猜你的意思更花时间=。=

热心网友 时间:2024-11-01 19:57

不太清楚你想要干什么??估计是你的数据出来的是文本了,所以要把公式中的数字双引号去掉,而且要把MID函数取出来的数据进行转换(可以用乘以1的方法)。

大致可以给你简化为可用公式:

=IF(ISNA(MID(C6,1,4)),"",1*MID(C6,1,4))

=IF(OR(AH6<2006,AH6=2015),1,IF(AND(AH6/2>1002,AH6/2<1010),2,IF(AH6=2010,3,4)))

=IF(OR(AND(AJ6=1,H6-R6=1,I6-S6=1),AND(AJ6=2,I6+1=S6),AND(AJ6=3,H6-1=R6),AND(AJ6=4,H6=R6,I6=S6)),"正确","错误")


若是AJ列需要直接的公式,可以不用AH6单元格的数据,公式为:

=IF(ISNA(MID(C6,1,4)),"",IF(OR(1*MID(C6,1,4)<2006,1*MID(C6,1,4)=2015),1,IF(AND(MID(C6,1,4)/2>1002,MID(C6,1,4)/2<1010),2,IF(1*MID(C6,1,4)=2010,3,4))))

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com