0

我在 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

搜索“Rejected”后只需要显示“XAX3 YYYY REJECTED”、“XAX5 YYY Rejected”和“XAX7 YYY Rejected”只有最新更新的行搜索“Approved”后只需要显示“XAX2 ABCABCABC Approved”和“ XAXW ABCABCABC 已批准”最后一行。如何在excel中制作这个公式

4

1 回答 1

0

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

在此处输入图像描述

在此处输入图像描述

单元格 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+时才能正常工作Enter,然后您可以向下拖动公式以填充其他单元格。如果您将 E1 的值更改为 Rejected 或 Approved,则 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())),"")

您可以在此处获取我在屏幕截图中的 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())),"")
于 2013-08-28T07:41:16.957 回答