多条件单列求不重复值-excel
- 格式:xls
- 大小:26.00 KB
- 文档页数:5
黄色区域用公式筛选出左边符合条件且不重复的
条件:G1的月份,J1的组别.
qkz=Sheet1!$A$2:$A$21 (Sheet1!$C$2:$C$21=Sheet1!$J$1)*(MONTH(Sheet1!$D$2:$D$21)=She
操作:选中A1:E21,数据〉列表〉创建列表
选中A1:E21,插入〉名称〉指定〉“首行”——一次定义以下名称
材料名称=Sheet2!$A$2:$A$21
F3键可粘贴名称列表:单位=Sheet2!$B$2:$B$21
日期=Sheet2!$D$2:$D$21
数量=Sheet2!$E$2:$E$21
组别=Sheet2!$C$2:$C$21
公式:H2=INDEX(材料名称,MATCH(1,(COUNTIF($H$1:$H1,材料名称)=0)*(组别=$J
套用模式:=index(Range,match(,countif(RangeX,Crite
公式解释:
庖丁解牛:公式分Index的第1、2参数2个部分,不难理解。
Match的第2参数
1、countif(H$1:H1材料名称)=0表示该区域还没出现过
2、组别=J1、Month(日期)=G1都易理解。
独孤九剑:在H2对公式中蓝色部分“抹黑”,按F9键得到:
{0;0;1;0;1;0;0;0;0;0;1;0;0;0;0;1;0;0;1;0}
注意,H2、H3……分别有变化哦。
首先Match(1,{0;0;1;0;1;0;0;0;0;0;1;0;0;0;0;1;0;0;1;0},)
于是H2="A004"
接着在H3再来一次:因为Countif此时已改变为Countif(H$1:H2,材料名
H3的match是Match(1,{0;0;0;0;0;0;0;0;0;0;1;0;0;
如此往下,每当出现过“材料名称”以后,下面的counti
False,False再进入与其它条件产生的逻辑之相乘得到0。
——此公式求不
I2=LOOKUP(1,0/(材料名称=H2),单位)——详见Lookup的查找机制一帖。
J3=SUMPRODUCT((材料名称=H2)*(组别=$J$1)*(MONTH(日期)=$G$1)*数量)—
出左边符合条件且不重复的材料名称.
*(MONTH(Sheet1!$D$2:$D$21)=Sheet1!$G$1)*ROW(Sheet1!$A$1:$A$20)=MATCH((Sheet1!$A$2:$A$21)&(Sheet1!$C$2:$C$21)&MONTH(Sheet1!$D$2:$D$21行”——一次定义以下名称
$H$1:$H1,材料名称)=0)*(组别=$J$1)*(MONTH(日期)=$G$1),))
Criteria),)数组公式求单列不重复值的方法。
个部分,不难理解。
Match的第2参数为“多条件”——即:
出现过“材料名称”
黑”,按F9键得到:
;1;0}
;0;0;0;1;0;0;0;0;1;0;0;1;0},)=3——找到第3个材料名称的位置
时已改变为Countif(H$1:H2,材料名陈)=0了,而H2已经出现了"A004",所以:
;0;0;0;0;1;0;0;0;0;1;0;0;1;0},)=11即A12的"A005"
—详见Lookup的查找机制一帖。
J$1)*(MONTH(日期)=$G$1)*数量)——最常见的多条件求和。
ountif对该名称的统计就是“不是0”,而countif=0返回逻辑之相乘得到0。
——此公式求不重复值的原理。
NTH(Sheet1!$D$2:$D$21),(Sheet1!$A$2:$A$21)&(Sheet1!$C$2:$C$21)&MONTH(Sheet1!$D$2:$D$21),)⠀。