【问题标题】:Excel 365 - Search table return true for each rowExcel 365 - 搜索表对每一行返回 true
【发布时间】:2021-05-11 15:46:30
【问题描述】:

真假表

大家好,

我需要返回所有找到 TRUE 的行,以便我可以通过 FILTER 函数将其放入。

例如

S2:Z2 不包含第 2 行的 TRUE 值返回 FALSE

S3:Z3 包含一个 TRUE 值,对于第 3 行返回 TRUE

谢谢!

编辑:返回数据示例

在 AB 中返回的数据

Returned Pending

【问题讨论】:

  • 其他行会是什么?假设您有 2 或 3 行所有 FALSE 值。那么会有什么结果呢?
  • 如果行中有任何 TRUE 值,则返回 TRUE,否则返回 FALSE
  • 你能举一个手动输出给定数据的例子吗?
  • 我在 OP 中添加了一个手动示例作为 AB 返回的数据。
  • 请检查我的答案。

标签: excel filter excel-formula office365 spreadsheet


【解决方案1】:

你可以使用:

H1中的公式:

=FILTER(A1:E5,MMULT(--A1:E5,SEQUENCE(COLUMNS(A1:E5))))

注意:WAAR 是荷兰语,相当于 TRUEONWAAR 相当于 FALSE


或者,如果您正在寻找“待处理”:

H1中的公式:

=INDEX({"","Pending"},1+(MMULT(--(A1:E5="Pending"),SEQUENCE(COLUMNS(A1:E5)))>0))

【讨论】:

  • 显然这比我的回答要好。我必须探索MMULT()
  • @Harun24HR,不一定更好,但至少不那么冗长 =)
【解决方案2】:

试试下面的公式-

=IF(SUM(--S2:Z2)=0,FALSE,TRUE)

编辑:试试下面的公式。这里P代表Pending

=FILTER(S2:Z6,(S2:S6="P")+(T2:T6="P")+(U2:U6="P")+(V2:V6="P")+(W2:W6="P")+(X2:X6="P")+(Y2:Y6="P")+(Z2:Z6="P"))

【讨论】:

  • 这行得通,但它需要为过滤功能对整个表执行此操作
  • 我认为只有真假不是你的实际数据。您能否发布您的实际数据样本然后手动输出结果?提供解决方案对我们来说更容易理解。
  • 我已经添加了数据。我需要使用过滤器函数来识别待处理的行。这就是 AB 列的用武之地,它提供了过滤功能所需的数组。编辑:我不想为每一行都有一个公式,因为数据是动态的,所以行数会不断变化。
  • 是的,我使用 IFS/IFERROR 得出了相同的结论。我希望有某种索引数组来使公式更小,并可能允许轻松添加未来的列。感谢您的帮助@Harun24HR
【解决方案3】:

这是我能想出的唯一解决方案,但它似乎是一种糟糕的解决方法。

=IFERROR(IFS(S2:S5000="Pending", TRUE,T2:T5000="Pending", TRUE,U2:U5000="Pending", TRUE,V2:V5000="Pending", TRUE,W2: W5000="Pending", TRUE,X2:X5000="Pending", TRUE,Y2:Y5000="Pending", TRUE,Z2:Z5000="Pending", TRUE),FALSE)

直到第 5000 行是我知道数据永远不会超过的任意数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多