如何使用非数组公式

时间:2018-04-22 15:04:33

标签: excel excel-formula

我有以下示例数据,并希望仅使用公式基于status条件Complete自动过滤它们。我知道如何使用array formulaVBA自定义函数进行过滤。现在我使用以下数组公式过滤它。由于某些限制,我想忽略VBAarray公式。是否有任何函数组合来实现它作为非数组公式?

{=IFERROR(INDEX($B$4:$E$13,SMALL(IF($E$4:$E$13="Complete",ROW($E$4:$E$13)-ROW($E$3)),ROW(1:1)),COLUMN(A$1)),"")}

============================= 示例数据 == ===============================

   ID   User    Task                 Status
----------------------------------------------
Emp-001 Harun   Prepare Document    Complete
Emp-002 Rahim   Print               Complete
Emp-003 Karim   Binding             Progress
Emp-004 Jadhu   Packaging           Complete
Emp-005 Madhu   Prepare Document    Hold
Emp-006 Rahima  Print               Progress
Emp-007 Shila   Binding             Hold
Emp-008 Kaniz   Packaging           Complete
Emp-009 Jamila  Prepare Document    Progress
Emp-010 Rina    Print               Complete

截图:
enter image description here

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

G3单元格中使用以下公式,然后根据需要向下和向下拖放。希望这会对你有所帮助。

=IFERROR(INDEX($B$3:$E$12,SMALL(INDEX(ROW($A$1:$A$10)-($E$3:$E$12<>"Complete")*(1E+99)*-1,, ),ROW(1:1)),COLUMN(A$1)),"")

<强>快照: enter image description here

答案 1 :(得分:0)

K4 中输入:

=MATCH("Complete",E:E,0)

K5 中输入:

=IFERROR(MATCH("complete",INDEX(E:E,K4+1):INDEX(E:E,9999),0)+K4,"")

并向下复制。列 K 定义感兴趣的行。

G4 中输入:

=IFERROR(INDEX(B:B,$K4),"")

向上和向下复制这个:

enter image description here