如何在表格中查找满足两个条件的值
(2012-09-08 23:51:51)
标签:
杂谈 |
分类: EXCEL技巧 |
最近遇到一个难题,如何查找满足两个条件的值,特在网上搜索了以下方法:
举例:
sheet1,原数据:
|
2B铅笔 |
新 | 15 |
| 2B铅笔 | 旧 | 45 |
| 4B铅笔 | 新 | 10 |
| 4B铅笔 | 旧 | 8 |
sheet2,查询数据:
| 2B铅笔 | 新 | =SUM(A1=Sheet1!$A$1:$A$4)*(B1=Sheet1!$B$1:$B$4)*(Sheet1!$C$1:$C$4) |
| 2B铅笔 | 旧 | =SUM(A2=Sheet1!$A$1:$A$4)*(B2=Sheet1!$B$1:$B$4)*(Sheet1!$C$1:$C$4) |
| 4B铅笔 | 新 | =SUM(A3=Sheet1!$A$1:$A$4)*(B3=Sheet1!$B$1:$B$4)*(Sheet1!$C$1:$C$4) |
| 4B铅笔 | 旧 | =SUM(A4=Sheet1!$A$1:$A$4)*(B4=Sheet1!$B$1:$B$4)*(Sheet1!$C$1:$C$4) |
方法:
1、C1=SUM(A1=Sheet1!$A$1:$A$4)*(B1=Sheet1!$B$1:$B$4)*(Sheet1!$C$1:$C$4)
2、C1=SUMPRODUCT(A1=Sheet1!$A$1:$A$4)*(B1=Sheet1!$B$1:$B$4)*(Sheet1!$C$1:$C$4)
3、C1=INDEX(Sheet1!C3:C6,MAX((Sheet1!A3:A6=Sheet2!A3)*(Sheet1!B3:B6=Sheet2!B3)*ROW(1:4)))
4、C1=LOOKUP(2,((Sheet1!$A$1:$A$4=Sheet2!A1)*(Sheet1!$B$1:$B$4=Sheet2!B1)) ^-0.5,Sheet1!$C$1:$C$4)
5、C1=VLOOKUP(A1&B1,IF({1,0},Sheet1!$A$1:$A$4&Sheet1!$B$1:$B$4,Sheet1!$C$1:$C$4),2,0)
1)SUM &SUMPRODUCT最终只能返回数值,(A1=Sheet1!$A$1:$A$4)*(B1=Sheet1!$B$1:$B$4)返回的值是1或者o,(匹配的为1, 不匹配的为0),然后乘以1对应的返回值得出返回值
2)index和lookup函数即可返回数值,也可以返回文本。index需要注意的是ROW(1:4),这个不能做到自动填充也不能固定。
PS:其中公式中第二个参数(A1=Sheet1!$A$1:$A$4)*(B1=Sheet1!$B$1:$B$4),
为两个条件匹配,
- ((条件一 )*(条件二))
- (A1=Sheet1!$A$1:$A$4)*(B1=Sheet1!$B$1:$B$4)
返回 : {1;1;0;0;0;0;0;0;0;0;0;0;0;0;0}
- 多个条件相乘, 产生 1 或 0 (匹配的为1, 不匹配的为0)
-
-
-

加载中…