发布网友 发布时间:2022-02-21 22:17
共5个回答
热心网友 时间:2022-02-21 23:46
可以实现
只不过需要的函数很复杂
A列动态数据
=INDIRECT("A"&SMALL(IF($A$2:$A$100=LOOKUP(9999,$A$2:$A$100),ROW($A$2:$A$100),65536),COUNTIF(A:A,LOOKUP(999+703,$A$2:$A$100))))
把这个公式,带入你的IF函数,将A2替换为这个公式,同时按CTRL SHIFT 回车键执行
即使A列有相同的,也可以
或
将公式写在 C2 =INDIRECT("A"&SMALL(IF($A$2:$A$100=LOOKUP(9999,$A$2:$A$100),ROW($A$2:$A$100),65536),COUNTIF(A:A,LOOKUP(999+703,$A$2:$A$100))))
同时按CTRL SHIFT 回车键执行
你B2公式里的A2修改为C2。
热心网友 时间:2022-02-22 01:04
选定第一行和第二行数据区域,插入——表格(2003版中用数据——列表——创建列表),确定。热心网友 时间:2022-02-22 02:39
选中区域,如果向下填充,使用ctrL+D热心网友 时间:2022-02-22 04:30
那就只能用VBA了,如果用公式,则将你的公式修改成下面:追答Private Sub Worksheet_Change(ByVal Target As Range) '编辑单元格事件
Application.EnableEvents = False '关闭事件响应
hh = Target.Cells.Row '被编辑的单元格行号
lh = Target.Cells.Column '被编辑的单元格列号
nr = Cells(hh, lh) '内容
If lh = 1 Then
If nr > 500 Then
Cells(hh, lh + 1) = 20
ElseIf nr > 150 Then
Cells(hh, lh + 1) = 13
ElseIf nr > 90 Then
Cells(hh, lh + 1) = 8
ElseIf nr > 25 Then
Cells(hh, lh + 1) = 5
ElseIf nr > 15 Then
Cells(hh, lh + 1) = 3
End If
End If
Application.EnableEvents = True '开启事件响应
End Sub
在工作表标签上点鼠标右键,选查看代码,将上面代码粘贴进去便可。
热心网友 时间:2022-02-22 06:38
方法1,双击填充柄,可填充,如果前一列连续多行,则填充相同多行。