我想知道是否有人知道公式列出2个值之间的所有数字,例如,如果单元格F2中有12个而G2中有17个,我想要一个显示13的公式, 14,15,16在细胞H2中。
由于
答案 0 :(得分:1)
使用Excel工作表功能无法完成此操作。你需要VBA。可以使用用户定义的函数(UDF)来完成。
以下代码需要存储在代码模块中。您需要右键单击工作表选项卡,然后选择查看代码。这将打开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扩展名的启用宏的工作簿。查看代码和用户定义函数的屏幕截图。
答案 1 :(得分:1)
仅仅因为@teylyn说它不能用公式完成 - 这是一个基于公式的解决方案:
首先,你需要创建一个你可能需要作为字符串的完整数字列表,这可能是在另一个单元格中,或者我的偏好是创建一个命名范围。
因此,创建一个名为rng的新命名范围,并在“引用”文本框中添加以下公式:
=",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,"
要使这个解决方案起作用,您必须先了解全部范围,还要注意前导和尾随逗号。
然后在单元格H2中输入以下公式:
=SUBSTITUTE(LEFT(rng,FIND(","&G2&",",rng)+LEN(G2)),LEFT(rng,FIND(","&F2&",",rng) ),"")
对于创建数字范围字符串的乏味,我使用以下Powershell代码创建并将其复制到剪贴板:
1..20 -join ',' | % {"=`",$($_),`""} | clip.exe
只需更改上述代码中的20,即可获得所需的任何范围。