我在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中制作这个公式
答案 0 :(得分: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 + 输入时才能正常工作,然后可以向下拖动公式以填充其他单元格。如果您将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())),"")