Excel:按下拉所选整数值自动填充递增序列的实现方案探讨
现有方案的优化方向
全版本兼容的无宏实现方案
- 完全可以舍弃自建的VBA自定义函数,所有Excel版本都能直接运行,不需要开启宏权限,兼容更好
- 操作方法:在C1单元格输入以下公式,根据你可能选择的最大下拉值,把公式向下拖动到对应最大行就行(比如最多选20就拖到C20):
=IF(ROW()-ROW($C$1)+1 <= $B$3, ROW()-ROW($C$1)+1, "") - 实现逻辑:通过行号自动计算当前单元格对应的序列值,自动和B3的下拉选中值比对,满足条件就输出对应序列数,不满足就输出空值,不需要逐格手动修改单元格内的参数。
- 如果还是要使用原来的自定义函数,也可以把逐格写固定值的用法优化:C1输入
=POPULATE_VALUE(ROWS($C$1:C1), $B$3)后向下拖动,拖动过程中第一个参数会自动按行递增,不用手动逐个改单元格里的数字参数。
Office 365/2021及以上版本的极简实现
- 不需要逐格拖动公式,直接在C1单元格输入单条公式,会根据B3的下拉值自动溢出对应长度的序列,下拉值修改后序列长度会自动同步调整,完全不用手动维护公式范围:
=SEQUENCE($B$3)
内容的提问来源于stack exchange,提问作者Vasu Mistry
相关产品推荐
相关产品推荐

