仅限数值表

仅限数值表

我有一张表格,其中一列显示月份,下一列显示该月的销售额。有些月份没有销售额。我想使用公式创建一个新表格,这样我只能看到有销售额的月份及其销售额。例如;

四月 - 500
五月 - 500
六月 -
七月 -
八月 - 500

等变成

四月 - 500
五月 - 500
八月 - 500

答案1

使用 FILTER 函数:

在此处输入图片描述

单元格I1中的公式:

=FILTER(F1:G5,G1:G5<>"")

编辑:

如果您没有 FILTER 功能,您可以使用功能区上数据选项卡上“排序和筛选”组中的高级筛选。

配置一个小的过滤表,其中包含一个没有标题的列,该列有一个公式,该公式引用数据中金额列中的单元格。下面屏幕截图中单元格 K2 中的公式是:

=G2<>""

在此处输入图片描述

答案2

对于旧版本,请使用 INDEX/AGGREGATE:

=IFERROR(INDEX(A:A,AGGREGATE(15,7,ROW(A$1:A$5)/($B$1:$B$5<>""),ROW(A1))),"")

将其放在第一个单元格中并复制到一列并向下复制,直到得到空白。

在此处输入图片描述

答案3

您需要一个数组(CSE)公式:

在此处输入图片描述

  • 单元格中的公式Q36

    {=IFERROR(INDEX(N$36:N$43,SMALL(IF($O$36:$O$43<>"",ROW($O$36:$O$43)-ROW($O$36)+1),ROWS(Q$35:Q35))),"")}
    
  • 完成配方Ctrl+Shift+Enter&填充。


:编辑:

 {=SMALL(IF(O$36:O$43<>"",ROW(O$36:O$43)-ROW(O$36)+1),ROWS(Q$35:Q35))}
  • 以上公式,如果是数组公式,则返回非空白值的行数O36 to O43,否则只获取第一个值的行数1

检查一下,解释一下它是如何工作的。

在此处输入图片描述

  • 单元格中的数组(CSE)公式V36

    {=SMALL(IF(O$36:O$43<>"",ROW(O$36:O$43)-ROW(O$36)+1),ROWS(V$35:V35))}
    
  • 单元格中的公式W36

    =INDEX(N$36:N$43,$V36)

  • 获取与非空白单元格匹配的正确月份名称,从中INDEX获取顺序V36 to V40

如果你把它填右然后填下,你会得到,

在此处输入图片描述

  • IFERROR用空白替换#NUM错误。

因此,INDEX 和 SMALL 的正确组合可以按所需顺序获取月份名称以及相关值。

  • 根据需要调整上述所有公式中的单元格引用。

答案4

使用数据透视表。

步骤 1:创建数据透视表

在此处输入图片描述

第 2 步:转到行标签 -> 值过滤器 -> 不等于 在此处输入图片描述

步骤3:输入0 在此处输入图片描述

步骤 4:单击“确定”,您的数据透视表现在应如下所示:

在此处输入图片描述

相关内容