【问题标题】:Troublesome syntax - ArrayFormula + CONC + Filter麻烦的语法 - ArrayFormula + CONC + Filter
【发布时间】:2020-05-23 12:55:30
【问题描述】:

Example

我有这行:

=ARRAYFORMULA(IFERROR(CONCATENATE(SORT(FILTER('Personale-vagter-AFKRYDS'!$B$3:$B$7 & " ",ARRAYFORMULA('Personale-vagter-AFKRYDS'!**G3**:**G7**=TRUE)),1,TRUE)),"error"))

...它可以工作,但是当我尝试从 G3 + G7 扩展到这个 (C3 + G37) 时:

=ARRAYFORMULA(IFERROR(CONCATENATE(SORT(FILTER('Personale-vagter-AFKRYDS'!$B$3:$B$7 & " ",ARRAYFORMULA('Personale-vagter-AFKRYDS'!**C3**:**G37**=TRUE)),1,TRUE)),"fejl"))

...它不起作用。

我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    FILTER 中的所有范围都需要相同大小。试试:

    =ARRAYFORMULA(IFERROR(CONCATENATE(SORT(
     FILTER('Personale-vagter-AFKRYDS'!B3:B37&" ", 
            'Personale-vagter-AFKRYDS'!G3:G37=TRUE), 1, 1)),"error"))
    

    更新:

    =ARRAYFORMULA(IFNA({
     VLOOKUP(LEFT(A3:A, 1)*1, SPLIT(TRANSPOSE(TRIM(QUERY(QUERY(SPLIT(TRANSPOSE(SPLIT(
     QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(CC!C3:C=TRUE, "♦"&IF(CC!B3:B="",,VLOOKUP(
     ROW(CC!A3:A), IF(CC!A3:A<>"", {ROW(CC!A3:A), CC!A3:A}), 2, 1))&"♥"&"♠"&CC!B3:B, ))
     ,,9^9)),,9^9), "♦")), "♠"), "select max(Col2) where Col2 !='' group by Col2 pivot Col1")
     ,,9^9))), "♥"), 2, 0),
     VLOOKUP(LEFT(A3:A, 1)*1, SPLIT(TRANSPOSE(TRIM(QUERY(QUERY(SPLIT(TRANSPOSE(SPLIT(
     QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(CC!D3:D=TRUE, "♦"&IF(CC!B3:B="",,VLOOKUP(
     ROW(CC!A3:A), IF(CC!A3:A<>"", {ROW(CC!A3:A), CC!A3:A}), 2, 1))&"♥"&"♠"&CC!B3:B, ))
     ,,9^9)),,9^9), "♦")), "♠"), "select max(Col2) where Col2 !='' group by Col2 pivot Col1")
     ,,9^9))), "♥"), 2, 0),
     VLOOKUP(LEFT(A3:A, 1)*1, SPLIT(TRANSPOSE(TRIM(QUERY(QUERY(SPLIT(TRANSPOSE(SPLIT(
     QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(CC!E3:E=TRUE, "♦"&IF(CC!B3:B="",,VLOOKUP(
     ROW(CC!A3:A), IF(CC!A3:A<>"", {ROW(CC!A3:A), CC!A3:A}), 2, 1))&"♥"&"♠"&CC!B3:B, ))
     ,,9^9)),,9^9), "♦")), "♠"), "select max(Col2) where Col2 !='' group by Col2 pivot Col1")
     ,,9^9))), "♥"), 2, 0),
     VLOOKUP(LEFT(A3:A, 1)*1, SPLIT(TRANSPOSE(TRIM(QUERY(QUERY(SPLIT(TRANSPOSE(SPLIT(
     QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(CC!F3:F=TRUE, "♦"&IF(CC!B3:B="",,VLOOKUP(
     ROW(CC!A3:A), IF(CC!A3:A<>"", {ROW(CC!A3:A), CC!A3:A}), 2, 1))&"♥"&"♠"&CC!B3:B, ))
     ,,9^9)),,9^9), "♦")), "♠"), "select max(Col2) where Col2 !='' group by Col2 pivot Col1")
     ,,9^9))), "♥"), 2, 0),
     VLOOKUP(LEFT(A3:A, 1)*1, SPLIT(TRANSPOSE(TRIM(QUERY(QUERY(SPLIT(TRANSPOSE(SPLIT(
     QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(CC!G3:G=TRUE, "♦"&IF(CC!B3:B="",,VLOOKUP(
     ROW(CC!A3:A), IF(CC!A3:A<>"", {ROW(CC!A3:A), CC!A3:A}), 2, 1))&"♥"&"♠"&CC!B3:B, ))
     ,,9^9)),,9^9), "♦")), "♠"), "select max(Col2) where Col2 !='' group by Col2 pivot Col1")
     ,,9^9))), "♥"), 2, 0)}))
    

    【讨论】:

    • 它将所有内容都放在同一个单元格中。
    • 好吧,这就是CONCATENATE公式的目的
    • 如果您分享您的工作表副本(不是提供的相关示例工作表),我可以看看
    • 但我希望公式能够根据每个单元格中的复选标记来 CONC 定义的单元格。
    • 这是一个非常简单的公式!谢谢你。我永远不会问你它是如何工作的:-)
    【解决方案2】:

    请在B3中使用这个并拖动到其他单元格中

    ARRAYFORMULA(IFERROR(CONCATENATE(SORT(FILTER(OFFSET('Personale-vagter-AFKRYDS'!$B$3:$B$37,0+(5*(row(A1)-1)),0,5,1) & " ",OFFSET('Personale-vagter-AFKRYDS'!C$3:C$37,0+(5*(row(A1)-1)),0,5,1)=TRUE),1,TRUE)),"fejl"))
    
    

    【讨论】:

    • 如果这不能回答您的问题,请分享表格或屏幕截图。
    • 我得到了很多 OG TRUE,但没有值。我使用这个: =IFERROR(CONCATENATE(SORT(FILTER('Personale-vagter-AFKRYDS'!$B$3:$B$7 & " ",'Personale-vagter-AFKRYDS'!F3:F7="x"),1 ,TRUE)),"") 在从 B3 到 F9 的每个单元格中,所以现在我只想用一句话数 X。
    • 可以分享一下截图吗
    • 链接添加在顶部。
    • 感谢 Bhawani Singh 的努力。 @player0 用可扩展的解决方案解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2011-03-26
    相关资源
    最近更新 更多