发布网友 发布时间:2022-04-24 09:03
共2个回答
热心网友 时间:2023-10-09 06:09
不知道原问题是什么,是否一定要用这样的公式,就公式*式,对问题作简解:
这里sheet1!$F$1:$BZ$1=sheet2!K$1、sheet1!$F$2:$BZ$2=sheet2!K$2……都是作为判断条件,看sheet1!$F$1:$BZ$1中的值是否和sheet2!K$1中的值相同……,相同返回TRUE,不同返回FALSE;
然后用(sheet1!$F$1:$BZ$1=sheet2!K$1)*(sheet1!$F$2:$BZ$2=sheet2!K$2)*(sheet1!$F$3:$BZ$3="sum")*(sheet1!$C$4:$C$330=sheet2!$C408)*(sheet1!$E$4:$E$330=sheet2!$F408)来作为IF的条件(各个判断值为TRUE或FALSE,用“*”相乘后,会转为1和0,1为条件成立,0为条件不成立),这里有行和列作条件,事实上其条件有73*327个(F到BZ列是73列,4行到330行有327行);
IF函数省略了一个参数,(sheet1!$F$1:$BZ$1=sheet2!K$1)*(sheet1!$F$2:$BZ$2=sheet2!K$2)*(sheet1!$F$3:$BZ$3="sum")*(sheet1!$C$4:$C$330=sheet2!$C408)*(sheet1!$E$4:$E$330=sheet2!$F408)
是一个参数,sheet1!$F$4:$BZ$330是条件成立时返回的参数,条件不成立时参数省略了,会返回FALSE,只是这里的参数都不是单个值,都是数组;
这里SUM函数中,只有一个参数,但这个参数不是sheet1!$F$4:$BZ$330,而是IF((sheet1!$F$1:$BZ$1=sheet2!K$1)*(sheet1!$F$2:$BZ$2=sheet2!K$2)*(sheet1!$F$3:$BZ$3="sum")*(sheet1!$C$4:$C$330=sheet2!$C408)*(sheet1!$E$4:$E$330=sheet2!$F408),sheet1!$F$4:$BZ$330),不过虽然SUM函数只有一个参数,但这个参数也不是单个值,是数组,有73*327个,其中包含条件成立时的数据和条件不成立时的FALSE,求和时会跳过FALSE,对数值求和(SUM函数求和时,如果参数是一个数组或引用,则只计算其中的数字。数组或引用中的空白单元格、逻辑值或文本将被忽略);
因此这是个数组公式,即需要同时按住Ctrl+Shift+Enter三键结束公式编辑,会自动生成一对{},否则按常规方法输入公式会返回错误值#VALUE!;
另外,给出的公式中有个字母打错了,不是shett2!$F408,应为sheet2!$F408。
热心网友 时间:2023-10-09 06:10
上面公式使用的是条件求和,公式格式为=SUM(IF(条件1*条件2*条件3*条件4*条件5,求和区域)