excel的if函数有三个条件怎么用?

A列是国考、省考、市考,2行中分别是分值,怎么用函数表达出,如果这个考试包含“国考”,对的题数乘以国考的分值,如果是“省考”,对的题数乘以省考的分值,如果是“市考”,对的题数乘以市考的分值呢?

下面这个是我做的,市考的能出来,但是省考和国考就是#####

=IF(FIND("市考",F29),H29*H5,IF(FIND("省考",F29),H29*H4,IF(FIND("国考",F29),H29*H3)))

试试公式:

=INDEX(H$3:H$5,MATCH(,0/FIND({"国考","省考","市考"},F29),))*H29

同时按Ctrl+Shift+Enter三键输入数组公式

因为没有看到你的工作表是怎样的,公式不一定适合你的情况。

你自己的公式修改成:

=IF(ISNUMBER(FIND("市考",F29)),H29*H5,IF(ISNUMBER(FIND("省考",F29)),H29*H4,IF(ISNUMBER(FIND("国考",F29)),H29*H3,"")))

应该也是可以的。

原公式出错的原因是:当F29找不到“市考”时,返回的不是false,而是一个错误值,导致公式出错。后面的省考也是一样的。对FIND加上一个isnumber(是数字吗?)的判断后,FIND发现有查找的内容时,返回数字,isnumber(find("查找内容",单元格))就返回ture,否则找不到,就返回false。这样公式就不会出错了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-16
你看下你下拉的公式,我估计你的公式智能填充的时候H5,H5,H3发生乐变化。如果要固定单元格位置,你要在前面加个$。例如:=IF(FIND("市考",F29),H29*H$5,IF(FIND("省考",F29),H29*H$4,IF(FIND("国考",F29),H29*H$3)))。这样
第2个回答  2018-04-16
把公式改为:
=H29*LOOKUP(1,FIND({"市考","省考","国考"},F29),$H$3:$H$5)
复制并下拉,即可