关于excel函数的几个问题 有点难度 高手请进!

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:24:03
A B C D E
1 SD1 2月 3 4000 F
2 SD2 2月 4 5000 F
3 SD1 2月 3 3000 G
4 SD1 3月 0 2000 H

如果 A列中的单元格和之前的单元格有重复 则向上选取和它重复的最近的行比较 如果B列中的月份一样 则在E列中相对应的单元格 显示“G" 如果B列中的月份不同 则显示“H" 如果没有重复 则显示 "F" 请问函数如何写
A B C D E 往右边挪一下 - - 对上号

试试这个公式。
E2=IF(COUNTIF($A$1:A1,A2),IF(INDEX(B:B,MAX(($A$1:A1=A2)*ROW($1:1)))=B2,"G","H"),"F")
是数组公式,按Ctrl+Shift+Enter结束公式输入。
向下复制公式。

没说的了。

E1="F"
E2输入如下数组公式(用Shift+Ctrl+Enter输入):
=IF(COUNTIF(A$1:A1,A2)>0,IF(B2=INDEX($B$1:$B1,MATCH(MAX((A$1:A1=A2)*ROW(A$1:A1)),(A$1:A1=A2)*ROW(A$1:A1))),"G","H"),"F")
下拉

比如表中第一行是标题行(名称,月份等等),在第E2输入公式=IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,"F",IF(B2=LOOKUP(1,0/(A$1:A1=A2),B$1:B1),"G","H")))公式向下复制,公式可不必按Ctrl+Shift+Enter.

楼主,我写了一段EXCEL用宏代码来处理您这个问题
Dim rs As Long
Dim i, j As Long
rs = Range("A65536").End(xlUp).Row
Range(Cells(1, 5), Cells(rs, 5)) = "F"
For i = 2 To rs
For j = i - 1 To 1 Step -1
If Cells(i, 1) = Cells(j, 1) Then
Cells(i, 5) = "H"
If Cells(i, 2) = Cells(j, 2) Then<