0,"R","")其他类推C20=INDEX(C:C,MAX(($A$2:$A$9=A20)*($B$2:$B$9=MAX(IF(($A$2:$A$9=A20)*$B$2:$B$9<=B20," />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > Excel里怎样实现多条件筛选并赋值当前单元格-EXCEL如何实现条件赋值,赋值表达式的条件

Excel里怎样实现多条件筛选并赋值当前单元格-EXCEL如何实现条件赋值,赋值表达式的条件

作者:乔山办公网日期:

返回目录:excel表格制作




如果C4:C10范围内能查到到R(一个或多个),则C3显示R
=IF(COUNTIF(C4:C10,"R")>0,"R","")
其他类推

C20=INDEX(C:C,MAX(($A$2:$A$9=A20)*($B$2:$B$9=MAX(IF(($A$2:$A$9=A20)*$B$2:$B$9<=B20,($A$2:$A$9=A20)*$B$2:$B$9,0)))*ROW($A$2:$A$9)))数组公式向下复制

=LOOKUP(1,0/((A$2:A$10=A20)*(B$2:B$10<=B20)),C$2:C$10)这个公式比我的简洁。

LOOKUP(M,区域1,区域2)

这个公式的意思是在查区域1中查找M,如果找到这个值M,就返回区域2中与M在区域1中相同位置的值(两个区域的只能包含一行或者7a64e59b9ee7ad94362一列,大小必须相同)。

如果区域1中没有M,则返回小于等于M的最大值所对应的区域2的值。

LOOKUP(1,0/((A$2:A$10=A20)*(B$2:B$10<=B20)),C$2:C$10)

在0/((A$2:A$10=A20)*(B$2:B$10<=B20))中查找1,返回C$2:C$10中对应位置的值。

0/((A$2:A$10=A20)*(B$2:B$10<=B20))的含义:

A$2:A$10=A20,在A$2:A$10区域中找=A20的单元格,找到就返回TRUE(也就是1),找不到就返回FALSE(也就是0),查找的结果形成8个参数的数组{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}

也就是{1;1;1;0;0;0;0;0}

同理B$2:B$10<=B20的结果是{TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE}

也就是{1;0;0;1;1;0;1;1}

((A$2:A$10=A20)*(B$2:B$10<=B20))就是上述两个数组对应值相乘形成一个新的数组

{1;0;0;0;0;0;0;0}(1*1=1,1*0=0,0*1=0)

0/((A$2:A$10=A20)*(B$2:B$10<=B20))就是用0去除以这个新形成的数组的每一个值组成新的数组。结果是{0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}

只有第一个正确,其余7个错误。

在这个数组(区域1)中查找1,只能返回小于或等于1的0(位置为第一个),

那么LOOKUP(1,0/((A$2:A$10=A20)*(B$2:B$10<=B20)),C$2:C$10)的结果就是返回C$2:C$10(区域2)中的第一个值c。



没有行号,类似这copy样的公式试试
=SUMPRODUCT(($C$2:$C$10=$C15)*(D$2:D$10>=--MID($B15,2,FIND(",",$B15)-2))*(D$2:D$10<=--MID(SUBSTITUTE($B15,"]",""),FIND(",",$B15)+1,3))*(E$2:E$10))
(和]代表的开和闭区间含义忘掉了,你自己调一下>=和<=

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网