如何合并/混合单元格的范围作为公式参数

在Excel中,我想计算一个项目的XIRR。
我的付款有两个单独的范围。
但XIRRfunction(和其他)接受单个范围作为参数。
如何合并函数参数中的范围? 像这样的东西

=XIRR(MixRanges(a1:a4,d1:d2), MixRanges(b1:b4,e1:e2)) 

感谢您的任何build议

我试图不使用UDF,但我无法弄清楚一个聪明的内置函数使用。

将此代码添加到您的工作簿:

 Option Explicit Public Function MergeRange(ParamArray rng()) As Single() Dim i As Long Dim count As Long Dim r As Excel.Range Dim s() As Single For i = LBound(rng) To UBound(rng) If (TypeOf rng(i) Is Excel.Range) Then For Each r In rng(i) ReDim Preserve s(count) s(count) = r.Value count = count + 1 Next r End If Next i MergeRange = s End Function 

像这样使用它:

=XIRR(MergeRange(A2:A6,D2:D6),MergeRange(B2:B6,E2:E6),0.1)

这将接受多个范围,获取它们的值,并将值作为一个连续的数组返回。 由于XIRR需要值和date,所以使用Single数据types应该没问题。

对于你的具体例子,你可以使用CHOOSE ,即

=XIRR(CHOOSE({1,2,3,4,5,6},A1,A2,A3,A4,D1,D2),CHOOSE({1,2,3,4,5,6},B1,B2,B3,B4,E1,E2))

但是这可能不容易延伸到更大的范围……

我不知道XIRR,但我试图用RANK.EQ做同样的RANK.EQ ,我发现所有需要的都是括号,即=RANK.EQ(J6,(J$6:$J$999,S$6:$S$999),0)