乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 请问在excel中如何用VLOOKUP/IF等简单函数实现固...-excel筛选函数公式if,exce

请问在excel中如何用VLOOKUP/IF等简单函数实现固...-excel筛选函数公式if,exce

作者:乔山办公网日期:

返回目录:excel表格制作


  这个要用到数组公式,为了不影响运算速度,加个辅助行号,这样只有辅助行号列用数组公式,后面的直接用常规公式,会大大提高运算速度,嫌看着不爽,可以将该列设计好公式后隐藏起来。

  如图,A2输入:

  =IFERROR(SMALL(IF((表一!$A$2:$A$100="小兰")+(表一!$B$2:$B$100="小兰"),ROW(表一!$A$2:$A$100)),ROW(1:1)),""),数组公式,即同时按Shift+Ctrl+Enter结束公式编辑,会自动生成一对{},下拉;

  B2输入:=IF($A2="","",INDEX(表一!A:A,$A2)),右拉至C2,再一同下拉;

  D2输入:=IF(B2<>"小兰","",INDEX(表一!C:C,$A2)),右拉至E2,再一同下拉。


  这里假设你原来的表一数据到100行,如果超出,按你的实际区域修改,如不超,可以不改。



假定你Sheet1的数据区域是在A3:D1000具体区域请根据实际情况修改 ,在SHEET2中的A2输入公式右拉。

 

=INDEX(Sheet1!A$3:A$1000,SMALL(IF(Sheet1!$C3:$C1000>DATE(2012,6,1),ROW($1:$998),998),ROW(A1)))&""

 

在SHEET2中的C2输入公式下拉。

 

=TEXT(INDEX(Sheet1!C$3:C$1000,SMALL(IF(Sheet1!$C3:$C1000>DATE(2012,6,1),ROW($1:$998),998),ROW(C1)))&"","e-mm-dd")

 

以上都是数组公式,输入完成不要直接回车,要按CTRL+SHIFT+回车 结束。

 


函数做不到,用VBA可以
把下列代码拷贝到你要实现功能的工作表的VBA窗口轴
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, j As Integer
j = 0
If Target = [c1] Then
Rows("2:100").EntireRow.Hidden = False
If [c1].Value <> "" Then
For i = 2 To 100
If Cells(i, 1).Value = [c1].Value Then
j = i
End If
Next
If j > 0 Then
Rows("2:" & j - 1).EntireRow.Hidden = True
Rows((j + 1) & ":100").EntireRow.Hidden = True
End If
End If
End If
End Sub
改变C1的数据,则只显示A列匹配的哪行,若无匹配或C1为空,则全部显示

J5:=sumproduct((E$2:E$1000="收视费")*B$2:C$1000)
J6:=sumproduct((E$2:E$1000="设备费")*B$2:C$1000)
J7:=sumproduct((E$2:E$1000="请客")*B$2:C$1000)
公式中的单元格区域可以根据需要进zd行相应设置调整。

相关阅读

关键词不能为空
极力推荐

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