作者:乔山办公网日期:
返回目录: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行相应设置调整。