Google sheets 你在它生成范围的单元格上加了一些条件吗?假设我想要A1:B中所有值的数组,但前提是C1:C中的值大于10。有可能吗?@Fakint可能会因此改变一点:=ARRAYFORMULA(查询(拆分(序列(1,MAX)(B2:B-A2:a)+1,0)+A2:a&“B

Google sheets 你在它生成范围的单元格上加了一些条件吗?假设我想要A1:B中所有值的数组,但前提是C1:C中的值大于10。有可能吗?@Fakint可能会因此改变一点:=ARRAYFORMULA(查询(拆分(序列(1,MAX)(B2:B-A2:a)+1,0)+A2:a&“B,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,你在它生成范围的单元格上加了一些条件吗?假设我想要A1:B中所有值的数组,但前提是C1:C中的值大于10。有可能吗?@Fakint可能会因此改变一点:=ARRAYFORMULA(查询(拆分(序列(1,MAX)(B2:B-A2:a)+1,0)+A2:a&“B2:B&”“B2:B&”“C2:C),“|”,0,0),“选择Col1,其中Col1按Col1,0排序”)@Fakint或此(它不会在空字符串上执行):=ARRAYFORMULA(查询(拆分(拆分(序列,MAX)(过滤器(B2:B,A2:a),


你在它生成范围的单元格上加了一些条件吗?假设我想要A1:B中所有值的数组,但前提是C1:C中的值大于10。有可能吗?@Fakint可能会因此改变一点:
=ARRAYFORMULA(查询(拆分(序列(1,MAX)(B2:B-A2:a)+1,0)+A2:a&“B2:B&”“B2:B&”“C2:C),“|”,0,0),“选择Col1,其中Col1按Col1,0排序”)
@Fakint或此(它不会在空字符串上执行):
=ARRAYFORMULA(查询(拆分(拆分(序列,MAX)(过滤器(B2:B,A2:a),B2:B“”,C2:C“”,C2:C>10)-过滤器(A2:A,A2:A“”,B2:B“”,C2:C>10))+1,0)+过滤器(A2:A,A2:A“”,B2:B“”,C2:C>10)和过滤器(B2:B,A2:A“”,B2:B“”,C2:C>10)),选择Col1,其中Col1@kishkin这是我在谷歌帮助论坛上使用的免责声明,我是一名志愿者“产品专家”:我应该提到flatte()是我最近才发现的一个没有文档记录的函数。我相信它是为了保持“隐藏”状态在sheets编程的后端,但如果我所做的是您所追求的,那么就没有更有效的方法了。如果您不喜欢使用未记录的函数,请告诉我,我可以尝试为您构建一种不同的工作环境。"@Mattking,非常感谢你,这太完美了!尽管我必须承认,它的工作原理完全超出了我的理解。我曾经玩过它,并成功地将它应用到我的工作表中,但后来有点迷失了。你能告诉我,你会在它产生射程的细胞上,在哪里设置一些条件假设我想要一个A1:B中所有值的数组,但前提是C1:C中的值大于10。有可能吗?@Fakint可以做一些改变:
=ARRAYFORMULA(查询(拆分(序列(1,MAX(B2:B-A2:a)+1,0)+A2:a&“&B2:B&”&C2:C),“|”,0,0),“选择Col1,其中Col1 10按Col1排序”,0))
@Fakint或者这个(它不会对空字符串执行):
=ARRAYFORMULA(查询(拆分(序列(1,最大值)(过滤器(B2:B,A2:A“”,B2:B“”,C2:C“”,C2:C>10)-过滤器(A2:A,A2:A“”,B2:B“”,C2:C>10))+1,0)+过滤器(过滤器(A2:A,A2:A“”,B2:B“”,C2:C>10)和过滤器(B2:B,A2:A“”,B2:B“”,B2:B“”,C2:C>10)),“,0,其中选择Col1
="{" & TEXTJOIN(",",TRUE,SEQUENCE(,MAX(A:B),MIN(A:B))) & "}"
Sub MakeArray()
    Dim I As Long, N As Long, J, k
    Dim strng As String
    Dim arr As Variant

    N = Cells(Rows.Count, "A").End(xlUp).Row
    For I = 1 To N
        For J = Cells(I, 1) To Cells(I, 2)
            strng = strng & "," & J
        Next J
    Next I
    strng = Mid(strng, 2)

    strng = "{" & Join(fSort(Split(strng, ",")), ",") & "}"


    MsgBox strng
End Sub

Public Function fSort(ByVal arry)
Dim I As Long, J As Long, Low As Long
    Dim Hi As Long, Temp As Variant

    Low = LBound(arry)
    Hi = UBound(arry)

    J = (Hi - Low + 1) \ 2
    Do While J > 0
        For I = Low To Hi - J
          If arry(I) > arry(I + J) Then
            Temp = arry(I)
            arry(I) = arry(I + J)
            arry(I + J) = Temp
          End If
        Next I
        For I = Hi - J To Low Step -1
          If arry(I) > arry(I + J) Then
            Temp = arry(I)
            arry(I) = arry(I + J)
            arry(I + J) = Temp
          End If
        Next I
        J = J \ 2
    Loop
    fSort = arry
End Function
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(SEQUENCE(1,MAX(B1:B10-A1:A10)+1,0)+A1:A10&"|"&B1:B10),"|",0,0),"Select Col1 where Col1<=Col2 order by Col1",0))