Excel根据其他条件查找重复值

时间:2013-08-28 04:51:36

标签: excel vba excel-formula

我在Excel中有以下列的值,但是列C的值正在改变,我需要找到具有基于列c的值的行 注册号码,姓名,状态

A       B               C     
XAX2    ABCABCABC   Rejected
XAX3    YYY         Rejected
XAX2    ABCABCABC   Rejected
XAX5    YYY         Rejected
XAX2    ABCABCABC   Approved
XAX7    YYY         Rejected
XAXW    ABCABCABC   Rejected
XAXW    ABCABCABC   Approved

搜索“已拒绝”后,只需显示“XAX3 YYYY REJECTED”,“XAX5 YYY Rejected”& “XAX7 YYY拒绝”仅限最新更新的行 搜索“已批准”后需要仅显示“XAX2 ABCABCABC Approved”&最后一行“XAXW ABCABCABC批准”。我怎样才能在excel中制作这个公式

1 个答案:

答案 0 :(得分:0)

如果我理解你的要求,你可以使用这样的布局:

enter image description here

enter image description here

单元格F1中的公式为:

=IFERROR(INDEX(A$1:A$8,SMALL(IF($E$1="Rejected",IF(($B$1:$B$8="YYY")*($C$1:$C$8=$E$1)=1,ROW(A$1:A$8),999),IF(($B$1:$B$8<>"YYY")*($C$1:$C$8=$E$1)=1,ROW(A$1:A$8),999)),ROW())),"")

只有在按 Ctrl + Shift + 输入时才能正常工作,然后可以向下拖动公式以填充其他单元格。如果您将E1的值更改为已拒绝或已批准,则F,G和H列中的列表将相应更改。

G1和H1中的公式分别为:

=IFERROR(INDEX(B$1:B$8,SMALL(IF($E$1="Rejected",IF(($B$1:$B$8="YYY")*($C$1:$C$8=$E$1)=1,ROW(A$1:A$8),999),IF(($B$1:$B$8<>"YYY")*($C$1:$C$8=$E$1)=1,ROW(A$1:A$8),999)),ROW())),"")

=IFERROR(INDEX(C$1:C$8,SMALL(IF($E$1="Rejected",IF(($B$1:$B$8="YYY")*($C$1:$C$8=$E$1)=1,ROW(A$1:A$8),999),IF(($B$1:$B$8<>"YYY")*($C$1:$C$8=$E$1)=1,ROW(A$1:A$8),999)),ROW())),"")

您可以在屏幕截图here中获取我的excel文件(我将在一周左右删除它)。

注意:如果B列中的内容无关紧要,请使用:

=IFERROR(INDEX(A$1:A$8,SMALL(IF($E$1="Rejected",IF($C$1:$C$8=$E$1,ROW(A$1:A$8),999),IF($C$1:$C$8=$E$1,ROW(A$1:A$8),999)),ROW())),"")

=IFERROR(INDEX(B$1:B$8,SMALL(IF($E$1="Rejected",IF($C$1:$C$8=$E$1,ROW(A$1:A$8),999),IF($C$1:$C$8=$E$1,ROW(A$1:A$8),999)),ROW())),"")

=IFERROR(INDEX(C$1:C$8,SMALL(IF($E$1="Rejected",IF($C$1:$C$8=$E$1,ROW(A$1:A$8),999),IF($C$1:$C$8=$E$1,ROW(A$1:A$8),999)),ROW())),"")