[英]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;""))`
我认为这会拖下去:
这个怎么运作?
MAX(INDIRECT("A1:A" & (ROW(A1)-1)))+1
。 使用INDIRECT,您可以引用特定范围。 索引始终在A列中,并从第1行开始,这就是为什么我输入"A1:A"
。 但是您想从A1到Activecell-1获得最大值,所以才添加了(ROW(A1)-1)
。 这将获得活动选择的行号减1。 IF(AND(B1<>"";ROW()<>1)
这只是检查相邻单元格是否不为空,并且行号不同于1。如果为true,则执行上一步。如果为false,则执行步骤3。 IF
返回False,则可能是因为相邻单元格为空,或者是因为行号为1。所以我们需要使用IF(AND(B1<>"";ROW()=1)
。如果为true,则意味着B1不为空且行号为1,因此必须将索引强制为 1。您无法计算A1之前的范围的最大值,否则会引发错误。如果第二个IF返回False,则意味着相邻单元格为空,所以我们什么也不做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.