在Excel中对FILTER函数应用的函数将给出#VALUE!结果

x0fgdtte  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(288)

我有一个函数,它以一个范围作为参数,我在Excel中使用时间序列,它工作得很好。

Function func(r As Range)
    ...
End Function

字符串
我想在过滤后的值上运行这个函数(例如2006年),所以我这样做了:

=func(FILTER(I1:I4631;MAP(H1:H4631;LAMBDA(a;YEAR(a)=2006))))


这是一个#Value!的结果。
当我运行JavaScript调试器时,函数甚至没有启动。
我注意到我可以

=FILTER(I1:I4631;MAP(H1:H4631;LAMBDA(a;YEAR(a)=2006)))


在一个单元格(本例中为T3)中,然后在结果范围(溢出)上使用函数func,这很有效。

=func(T3#)


但我想避免这一步,用一个公式来做这件事
我使用Microsoft® Excel® for Microsoft 365 MSO。
有没有人知道我做错了什么,也许如何纠正这一点?谢谢!

w8f9ii69

w8f9ii691#

例如,尝试以下操作:

Function func(r As Variant)
    Dim el As Variant
    Debug.Print "r is of type " & TypeName(r)
    For Each el In r
        Debug.Print "...Item", TypeName(el)
    Next el
End Function

字符串
FILTER()给出的是一个变量数组,而不是Range
我的测试:


的数据
即时窗格输出:

r is of type Variant()
...Item       String
...Item       String

相关问题