【问题标题】:Please help me with the Formula & ArrayFormula:请帮助我使用公式和数组公式:
【发布时间】:2021-08-19 05:06:08
【问题描述】:

我想在最后一个值之前为空白单元格返回 TRUE(查看必填列)

我试过这个公式:=AND($A2="" ,$A3:$A <> ""),但它不起作用。
问题 1:我怎样才能使第二个参数,即 $A3:$A <> "" 返回 true 如果范围内的任何一个单元格 $A3:$A 是Not Null?最终公式?
(我知道我的公式是错误的,因为它不会检查提到的范围内的每个单元格是否为 NULL,我怎样才能让它检查每个单元格?)

问题2:对应公式的ArrayFormula。

(请建议是否有更好的方法来获取公式和 ArrayFromula 以及我尝试过的方法的解决方案)
这是工作表链接:https://docs.google.com/spreadsheets/d/1VF38MNcP1e4ieZY47QQq1zOwGYWAmuJ2k9A0WkGYeX0/edit?usp=sharing

编辑:

我得到了公式: =IFNA(MATCH(FALSE,ArrayFormula(isblank(A2:A)),0),0)>1
对于 ArrayFormula,我只是尝试将其包裹起来,但没有成功:=ARRAYFORMULA(IFNA(MATCH(FALSE,ArrayFormula(isblank(A2:A)),0),0)>1)

我只需要这个公式的 ArrayFormula,请告诉我我的 ArrayFormula 出了什么问题?
谢谢!

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas


    【解决方案1】:

    试试下面的公式。

    =ArrayFormula(A2:A10="")
    

    对于整列

    =ArrayFormula(A2:A="")
    

    编辑:然后使用下面的公式。

    =ArrayFormula(INDEX(A:A,2):INDEX(A:A,MAX(IF(A:A<>"",ROW(A:A),0)))="")
    

    【讨论】:

    • 谢谢,但没有给出所需的列,它会给第 26、27、28 行提供 TRUE,因为最后一个值在第 25 行,所以应该是 FALSE。请检查我的编辑问题。
    • @AashitGarodia 请查看我编辑的公式。另请参阅您的工作表。
    • 非常感谢!你能告诉我我的 ArrayFormula 有什么问题吗?你能解释一下你给出的公式吗?所以我尝试理解,我唯一理解的是 MAX(IF(A:A"",ROW(A:A),0)) 将给出最后一行的值,即在我们的例子中为 25 所以它变成 = ArrayFormula(索引(A:A,2):INDEX(A:A,25)="")。我知道 INDEX(A:A,2) 将返回 2 & INDEX(A:A,25) 在我的情况下将返回 7 但我不明白的是如何 =INDEX(A:A,2):INDEX(A :A,25) 给出一个范围为 A2:A25 的值的数组,它实际上不等于写 =2:25,这没有意义。
    • @AashitGarodia 哈哈哈。有点棘手。它像 INDIRECT()OFFSET() 公式一样工作,但它们是易失的,但 INDEX() 不是易失的。因此,当您使用=Index(arr,x):Index(arr,y) 时,它将返回x &amp; y 行之间的完整范围。它没有记录,但 excel 以这种方式工作。
    • 该死的,这真的很棘手,但非常有用,我只有一个简单的问题:你的公式 =INDEX(A:A,2):INDEX(A:A,25)="" 包裹在 ArrayFormula 上时:=ArrayFormula(INDEX(A:A,2):INDEX(A:A,25)="") 工作,同样我的公式 =IFNA(MATCH(FALSE,ArrayFormula(isblank(A2:A)),0),0)&gt;1 包裹起来ArrayFormula:=ARRAYFORMULA(IFNA(MATCH(FALSE,ArrayFormula(isblank(A2:A)),0),0)&gt;1) 不起作用,为什么? & 我怎样才能得到我的公式的 ArrayFormula?
    【解决方案2】:

    尝试:

    =INDEX(INDIRECT("A2:A"&MAX(IF(A2:A="",,ROW(A2:A))))="")
    

    或:

    =INDEX(INDIRECT("A2:A"&MAX((A2:A<>"")*ROW(A2:A)))="")
    

    【讨论】:

    【解决方案3】:

    我建议这个简单的公式:

    =ArrayFormula(NOT(A2:A))

    由于任何值都等于 TRUE,而 null 等于 FALSE,因此将范围包含在 NOT 中将返回相反的结果。

    附录:

    鉴于海报的其他信息:

    =ArrayFormula(IF((A2:A="")*(ROW(A2:A)&lt;VLOOKUP(TRUE,SORT({A2:A&lt;&gt;"",ROW(A2:A)},2,0),2,FALSE)),TRUE,FALSE))

    【讨论】:

    • 谢谢,但没有给出所需的列,它会给第 26、27、28 行提供 TRUE,因为最后一个值在第 25 行,所以应该是 FALSE。请检查我的编辑问题。
    • 查看我帖子中的附加公式。
    猜你喜欢
    • 2021-12-24
    • 2015-06-26
    • 1970-01-01
    • 2011-05-18
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    相关资源
    最近更新 更多