繁体   English   中英

Excel:如何添加忽略空单元格的索引

[英]Excel: How to add an index that ignores empty cells

我得到了一个Excel表。 我想包括一个仅包含索引的附加列。 该索引右边的列中将包含一些文本,或者为空。 每当右边的单元格不为空时,我都希望有一个索引。

例:

1    Some Text
2    Some Text


3    Some Text

4    Some Text

我希望通过应用以下公式来实现:

=IF(B7="";"";MAX(A4:A6)+1)

MAX()函数中给出的单元格是当前单元格之前的所有单元格。 该公式可以正常工作,但不幸的是,仅在之间不超过3个空单元格的情况下才可使用。 我可以使此公式适用于介于两者之间的任意数量的空白单元格吗?

我使用的A1的公式是:

`=IF(AND(B1<>"";ROW()<>1);MAX(INDIRECT("A1:A" & (ROW(A1)-1)))+1;IF(AND(B1<>"";ROW()=1);1;""))`

我认为这会拖下去:

在此处输入图片说明

这个怎么运作?

  1. 这里的技巧是MAX(INDIRECT("A1:A" & (ROW(A1)-1)))+1 使用INDIRECT,您可以引用特定范围。 索引始终在A列中,并从第1行开始,这就是为什么我输入"A1:A" 但是您想从A1到Activecell-1获得最大值,所以才添加了(ROW(A1)-1) 这将获得活动选择的行号减1。
  2. IF(AND(B1<>"";ROW()<>1)这只是检查相邻单元格是否不为空,并且行号不同于1。如果为true,则执行上一步。如果为false,则执行步骤3。
  3. 如果第一个IF返回False,则可能是因为相邻单元格为空,或者是因为行号为1。所以我们需要使用IF(AND(B1<>"";ROW()=1) 。如果为true,则意味着B1不为空且行号为1,因此必须将索引强制为 1。您无法计算A1之前的范围的最大值,否则会引发错误。如果第二个IF返回False,则意味着相邻单元格为空,所以我们什么也不做。

像这样的数据:

在此处输入图片说明

A1中输入:

=IF(B1="";"";1)

A2中输入:

=IF(B2="";"";1+MAX($A$1:A1))

并向下复制:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM