我有一列,其中的值在下一个块开始之前重复任意次数。但是,其中一些块根本不包含数字。虽然其他每个块都是唯一的,但这些块不是。也就是说,每个其他块都包含其他块中没有出现的数字。为了解决这个问题,我想找到一种方法来告诉 Excel 从 1 数到 n,并在每个空白“块”的列的空白处输入该数字。这可以在没有 VBA 的情况下完成吗?
Example:
123
123
123
123
123
112
112
112
112
111
111
111
111
312
312
312
这个想法是在第一个空间中放置多个 1,在第二个空间中放置多个 2,依此类推。
答案1
正如评论中所述,公式(工作表函数)不能修改单元格。但如果你满足于显示您想要的值,这很容易。假设我明白您想要什么。
如果您的数据在第 列A
,从第 1 行开始,则输入
=IF(NOT(ISBLANK(A1)), A1, 1)
进入细胞B1
,并
=IF(NOT(ISBLANK(A2)), A2, IF(NOT(ISBLANK(A1)), 1, B1+1))
拖到单元格中,然后将其向下拖动以覆盖列(第 26 行,对于样本数据)或超出范围(如果需要)的B2
数据。这样会得到如下结果:A
解释:
- 第一行有所不同,因为没有前一行可供查看。在这里,如果 中的值
A1
不为空,我们将显示它;否则,我们将显示1
。更笼统地说,如果左侧单元格的值不为空,则显示它;否则,我们显示生成的、按顺序插入的数字。
单元格遵循相同的一般模式:如果(左侧单元格)
B2
中的值不为空,则显示该值;否则,显示生成的数字。“else”子句(“otherwise”公式)是A2
IF(NOT(ISBLANK(A1)), 1, B1+1)
检查左侧单元格和上一行单元格中的值是否不为空 - 即这行是空白行块的第一行。如果此行是空白行块的第一行,则显示
1
。否则,我们从此行上方的单元格中获取值(B1
)并添加1
到该单元格中(即计数)。