Excel 返回两个单元格之间的整数列表

Excel 返回两个单元格之间的整数列表,excel,vba,formula,Excel,Vba,Formula,我希望公式或vba函数能够在给定上限和下限的情况下向单元格中添加值列表。例如,请参阅下图中的A列和B列: 我想生成一个公式或函数,返回一个上界和下界的列表,以及其中的所有值。有关所需的输出,请参见上面示例中的C列 问题在于两个单元格之间的范围不同(C列中的输出并不总是包含4个整数-它可以是更多或更少) 有人知道完成这项任务的最佳方式是什么吗?我非常感谢您的帮助。使用VBA: Public Function Seq(n1 As Long, n2 As Long) As String Fo

我希望公式或vba函数能够在给定上限和下限的情况下向单元格中添加值列表。例如,请参阅下图中的A列和B列:

我想生成一个公式或函数,返回一个上界和下界的列表,以及其中的所有值。有关所需的输出,请参见上面示例中的C列

问题在于两个单元格之间的范围不同(C列中的输出并不总是包含4个整数-它可以是更多或更少)

有人知道完成这项任务的最佳方式是什么吗?我非常感谢您的帮助。

使用VBA:

Public Function Seq(n1 As Long, n2 As Long) As String
    For i = n1 To n2
        Seq = Seq & "," & i
    Next i
    Seq = Mid(Seq, 2)
End Function

编辑#1:

在最新版本的Excel中,此数组公式:

=TEXTJOIN(",",TRUE,ROW(1:5))
将返回一系列值:


也许一个真正聪明的人可以告诉我们如何用单元格引用替换1:5。

如果您使用的是Office365或Excel 2016或更高版本,您可以像这样使用TextJoin函数(使用Ctrl+Shift+Enter作为数组公式输入):


否则,您需要使用VBA创建自定义项,如Gary的学生答案所示。

什么版本的Excel?如果不是Office365或Excel 2016,则需要使用VBA创建自定义项。@tigeravatar请参阅下面我的帖子…………我一直试图在TEXTJOIN()中使用间接(),但没有成功。@Gary的学生可能
=TEXTJOIN(“,”,TRUE,ROW(索引(a:a,A2):索引(a:a,B2)))
?@tigeravatar PERFECT…………您应该在帖子中提到它需要阵列-entry@Gary'学生:是的,刚刚想到并更新了。我想是这样的,但不幸的是,没有最新版本的Excel=TEXTJOIN(“,”,TRUE,ROW(INDEX(a:a,A1):INDEX(a:a,B1))@TomSharpe谢谢!。。。。。。。。。。。。。。。这种方法是有效的…………我愚蠢地一直在尝试间接()的变化,谢谢-这也应该有效(在Google Sheets中测试过)=数组形式(TEXTJOIN(“,”,TRUE,ROW(INDIRECT(A1&“:”&B1))),但其他人建议我不要在Excel中使用它,因为它的波动性。@TomSharpe再次感谢!
=TEXTJOIN(",",TRUE,ROW(INDEX(A:A,A2):INDEX(A:A,B2)))