永发信息网

急!一个关于EXCEL条件函数问题。

答案:3  悬赏:50  手机版
解决时间 2021-02-27 06:20
  • 提问者网友:niaiwoma
  • 2021-02-26 12:59
在使用中经常遇到类似问题,条件函数嵌套超过七层了,怎么处理呢?例如:
=IF(G5="员级",IF(D5<10,"111",IF(D5<20,"222",IF(D5<30,"333",IF(D5<40,"444",IF(G5="助理级",IF(D5<10,"123",IF(D5<20,"234",IF(D5<30,"345",IF(D5<40,"456",IF(G5="中级",IF(D5<10,"132",IF(D5<20,"243",IF(D5<30,"354",IF(D5<40,"465",IF(G5="副高",IF(D5<10,"300",IF(D5<20,"400",IF(D5<30,"500",IF(D5<40,"600"))))

10年以下 10-19年 20-29年 30-39年 40年以上
副高 1024 1074 1124 1174 1224
中级 935 960 980 1000 1020
助理级 860 880 900 920 940
员级 800 835 862 880 900

姓名 年限 职称 工资
张三 16 中级 ?
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-02-26 13:37
你把公式改为=IF(G5="员级",LOOKUP(D5,{0,10,20,30,40},{800,835,862,880,900}),IF(G5="助理级",LOOKUP(D5,{0,10,20,30,40},{860,880,900,920,940}),IF(G5="中级",LOOKUP(D5,{0,10,20,30,40},{935,960,980,1000,1020}),IF(G5="副高",LOOKUP(D5,{0,10,20,30,40},{1024,1074,1124,1174,1224})))))就是.
全部回答
  • 1楼网友:过活
  • 2021-02-26 15:59
=if(g5="员级",lookup(d5,{0,10,20,30,40},{如果 你是EXCEL2007,不用担心这个问题,系统已经改了限制层数,具体多少不记得了,反正够多了 如果是2003,下面有个例子,你可以看看 if 超过7层如何办 1. 将七层之外的IF语句,放在另外的单元格内来处理,例:C5=if(if,...,(if...),B5))),B5单元格就是存放七层之外的IF语句。依此类推,可以实现在数据库语言中CASE语句的功能。 2. IF 函数的确有七层嵌套的限制。遇到七层嵌套还解决不了的问题,可以尝试用其它的函数组合和数组公式来解决;有时用 VBA 方案可以有很好的效果。 这里给出一个解决IF函数嵌套超出范围的方法,可能比较容易使初学者看懂。其思路是:一个单元格做不了的事,分给两个或更多的单元格来做,文字内容是这样,函数内容也是这样。 例子:假如 A1=1,则 B1=A;A1=2,则 B1=B …… A1=26,则 B1=Z 解决方法如下: B1 = IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",C1)))))))) C1 = IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",D1)))))))) D1 = IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",E1)))))))) E1 = IF(A1=25,"Y",IF(A1=26,"Z","超出范围")) 根据情况,可以将 C、D、E 这些从事辅助运算的单元格放在其它任何地方 3. 一个单元格也可以实现 =IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",""))))))))&IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",""))))))))&IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",""))))))))&IF(A1=25,"Y",IF(A1=26,"Z",""))(数组形式输入)。 4. 以一例:a1=1,2,3,4,5,6,7,8,9,10 b=if(a1=1,"一",if(a1=2,"二",if(a3=3,"三",.......if(a1=9,"九",if(a1=10,"十")))))),if超过7层不起作用,我该如何办 解答:1、b=if(a1>5,if(a1=6,"六"。。。。。。)),明白意思?就是截为两段再做判断,这样可以不超过7重。 2、可以用自定义数字格式。也可以用=CHOOSE(A1+1,"一二三四五六七八九十") 问:实际上我的要求是现行高一成绩统计中:b=if(a1="语文","语文",if(a1="数学","数学",if(a1="英语","英语",if(a1="物理","物理",if(a1="化学","化学",if(a1="历史","历史",if(a1="政治",政治",if(a1="生物","生物“,if(a1="地理","地理")))))))),这样超过了7层。我不知如何处理。因为下面的公式要引用语、数、英、等。 答:新建一表,取名Data,找一区域设置名称为SubjectTable: 语文 Chinese 英语 English .. =vlookup(SubjectTable,a1,2,false)可以有65536个,够了吧。其实,稍加改进,理论上,可以有达到你硬盘空间的个数。或用if和or的组合可以解决15个。 再举个例子: =IF(A16="","",IF(B16="","样办尚未交",IF(OR(B16="内部检查中",B16="数据查询中",B16="数据查询中"),CONCATENATE(IF(B16="内部检查中","品质检测中",""),IF(B16="数据查询中","图纸未确认",""),IF(B16="为不合格","需要修正","")),CONCATENATE(IF(C16="客户检查中","待客回复",""),IF(C16="合格","待P/O生产",""),IF(C16="取消","客户取消",""),IF(C16="为客户设变中","客户设变中",""),IF(C16="不合格","需要修正","")))))
  • 2楼网友:你哪知我潦倒为你
  • 2021-02-26 15:15
if函数可以嵌套七层,我简单举统计成绩中用到的一种写法: if(a1>=90,"优秀",if(a1>=60,"及格","不及格") 其中a1要看你要分析的单元格的地址,这里只是举例罢了,实际应用还要看你的需要,分析完以后可以用填充柄填充下面的单元格,公式会自动在大于或等于90分的旁边写上优秀两字,在大于等于60分小于90分旁边的单无格写上及格,低于60分的写上不及格. 如果你是用插入函数的话,选择if会出现三个格. 第一格填入:a1>=90 第二格填入:优秀 第三格填入:if(a1>=60,"及格","不及格") 1.if函数的语法结构 if函数的语法结构:if(条件,结果1,结果2),详细说明可以参照表6-4。 2.if函数的功能 对满足条件的数据进行处理,条件满足则输出结果1,不满足则输出结果2。可以省略结果1或结果2,但不能同时省略。 3.条件表达式 把两个表达式用关系运算符(主要有=,<>,>,<,>=,<=等6个关系运算符)连接起来就构成条件表达式,例如,在if(a1+b1+50 <> b1+c1 50, 1,1)函数式中,条件表达式是a1+b1+50 <> b1+c1 50。 4.执行过程 下面以if(a1+b1+50 <> b1+c1 50, 1,1)函数式为例来说明if函数的执行过程。 先计算条件表达式a1+b1+50 <> b1+c1 50,如果表达式成立,值为true,并在函数所在单元格中显示“ 1”;如果表达式不成立,值为false,并在函数所在单元格中显示“1”。 5.if函数嵌套的执行过程 如果按等级来判断某个变量,if函数的格式如下: if(e2>=85,"优",if(e2>=75,"良",if(e2>=60,"及格","不及格"))) 函数从左向右执行。首先计算e2>=85,如果该表达式成立,则显示“优”,如果不成立就继续计算e2>=75,如果该表达式成立,则显示“良”,否则继续计算e2>=60,如果该表达式成立,则显示“及格”,否则显示“不及格”。 说明:这个函数有三个参数,第一个是逻辑条件,第二个是当值为“真”时的返回值,第三个是当值这“假”的返回值。上例中,对b1单元格进行判断,如果值是“男”(注意,汉字必须用引号,而且是半角),那么就在原工资c1的基础上增加80,如果不是男性,就增加50。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯