Excel - 返回从第一个非空值

时间:2016-03-17 15:54:52

标签: excel

我有一个数据透视表,显示在不同月份收集药物的患者数量,根据首次治疗月份分组列。

image

在数据透视表右侧是另一个表,我想并排显示数据透视表中的列,每列中的第一个单元格是该特定列中的第一个非空单元格。换句话说,我想在数据透视表中显示信息,但每列中第一个非空白值上方没有空格。

在上面的电子表格中,我在最右边的表格中尝试了以下公式:

=INDEX(B7:B20;MATCH(TRUE;INDEX(B7:B20<>"";0);0))

从附图中可以看出,这个公式并没有给我我想要的东西。它会在每列中返回相同的第一个非空值,直到它到达数据透视表中显示该值的行。此外,在遍历所有单元格后,它会一遍又一遍地在数据透视表的最后一列中返回单元格。

有关如何纠正此问题的任何想法?

2 个答案:

答案 0 :(得分:0)

根据您提供的信息,在单元格M6中使用此公式,然后上下复制:

=IF(ROWS(M$5:M5)>COUNT(B$6:B$19),"",INDEX(B$6:B$19,SMALL(INDEX((ROW(B$6:B$19)-5)*(ISNUMBER(B$6:B$19)),),COUNTBLANK(B$6:B$19)+ROWS(M$5:M5))))

看起来你的区域参数分隔符是分号而不是逗号,所以这里是分号版本:

=IF(ROWS(M$5:M5)>COUNT(B$6:B$19);"";INDEX(B$6:B$19;SMALL(INDEX((ROW(B$6:B$19)-5)*(ISNUMBER(B$6:B$19)););COUNTBLANK(B$6:B$19)+ROWS(M$5:M5))))

答案 1 :(得分:0)

根据我的理解,你想跳过空白。此公式应适用于B列中的文本和数字

=IFERROR(INDEX(B$7:B$30,SMALL(IF(1-(B$7:B$30=""),IF(1-(B$7:B$30=""),ROW(B$7:B$30)-ROW(B$7)+1)), ROWS($F$7:F7))),"")

输入时使用CTRL + Shift + Enter,因为它是一个数组公式

相关问题