【问题标题】:How to filter data based on condition using non array formula如何使用非数组公式根据条件过滤数据
【发布时间】:2018-04-23 00:13:18
【问题描述】:

我有以下示例数据,并希望仅使用公式根据status 条件Complete 自动过滤它们。我知道如何使用array formula 和VBA 自定义函数进行过滤。现在我正在使用以下数组公式对其进行过滤。由于某些限制,我想忽略VBA 和array 公式。有没有什么函数组合可以实现非数组公式?

{=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

截图:

非常感谢任何帮助。

【问题讨论】:

  • 如果您愿意在列K中使用“帮助”列,您就可以实现目标
  • @pnuts 我用了Advanced Filter,可以实现,但是Advance Filter需要手动触发。如果我只能使用公式,那么当我输入新数据或用户任务完成时更改状态时,它会自动过滤。

标签: excel excel-formula


【解决方案1】:

在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)),"")

快照:

【讨论】:

  • 哇!这个公式就像魔术一样起作用。它对我有很大帮助。非常感谢。
  • 基本上我从 Jeeps 那里得到了这个想法,回答了我的一个问题。 Link of that question here.
【解决方案2】:

在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),"")

上下复制:

【讨论】:

  • 它也可以,但更好的解决方案是没有辅助列。感谢您的回答。
  • @RainyDay 我完全同意!以后我会用harun的方法!
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2021-01-03
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多