Excel:列出2个数字之间的数字
我想知道是否有人知道一个公式列出所有的数值之间的2个值,所以例如,如果单元格F2有12个,G2有17个,我想要一个公式,将显示13,14,15,16在H2单元格中。
谢谢
这不能用Excel工作表函数完成。 你将需要VBA。 它可以用用户定义的函数(UDF)来完成。
以下代码需要存储在代码模块中。 您需要右键单击工作表选项卡,select查看代码。 这将打开Visual Basic编辑器。 单击插入>模块,然后粘贴以下代码:
Function InBetween(MyFirst As Integer, MyLast As Integer) Dim foo As String Dim i As Long foo = MyFirst + 1 For i = MyFirst + 2 To MyLast - 1 foo = foo & "," & i Next i InBetween = foo End Function
现在,您可以使用像=InBetween(F2,G2)
这样的公式来生成您描述的结果。
您需要将该文件保存为具有XLSM扩展名的启用macros的工作簿。 查看代码和用户定义函数的屏幕截图。
仅仅因为@telyn说它不能用公式完成 – 这是一个基于公式的解决scheme:
首先,您需要创build可能需要的数字的完整列表作为string,这可能在另一个单元格中,或者我的首选项是创build一个命名范围。
因此,创build一个名为rng的新命名区域,并在“引用”文本框中添加以下公式:
=",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,"
为了这个解决scheme的工作,你必须知道前面的全部范围,还要注意前面和后面的逗号。
然后将下面的公式input到单元格H2中:
=SUBSTITUTE(LEFT(rng,FIND(","&G2&",",rng)+LEN(G2)),LEFT(rng,FIND(","&F2&",",rng) ),"")
与创build数字范围string的麻烦相同,我使用以下Powershell代码创build并将其复制到剪贴板:
1..20 -join ',' | % {"=`",$($_),`""} | clip.exe
只要在上面的代码中更改20就可以了。