将 N 个值插入 N 个块

将 N 个值插入 N 个块

我有一列,其中的值在下一个块开始之前重复任意次数。但是,其中一些块根本不包含数字。虽然其他每个块都是唯一的,但这些块不是。也就是说,每个其他块都包含其他块中没有出现的数字。为了解决这个问题,我想找到一种方法来告诉 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到该单元格中(即计数)。

相关内容