如果另一个单元格为真,则显示单元格值,否则转到下一行

如果另一个单元格为真,则显示单元格值,否则转到下一行

这是我的桌子Sheet1

A         B          C            D
------------------------------------------
1        220        John         Good
2        210        Jack         Bad
3        300        Mike         Good
4        473        David        Very Good

我想创建一个 中的“良好”和“非常好”记录列表Sheet2。例如:

A         B          C            D
------------------------------------------
1        220        John         Good
2        300        Mike         Good
3        473        David        Very Good

我应该使用哪个公式来填充每一行?(自动填充)

答案1

您可以使用 Excel 中的高级筛选功能,并将 Sheet2 设置为筛选位置。数据 > 排序和筛选 > 高级 > 选中“复制到另一个位置”单选按钮。

您需要为此创建条件。在本例中,请在表格上方创建另外三行,并将相应的列设置为:

="=好" 和 ="=非常好"

它看起来像这样(请注意,您需要在条件和数据之间留出空白行,以及条件的列标签):

A         B          C            D
------------------------------------------
                                 =Good
                                 =Very Good

A         B          C            D
------------------------------------------
1        220        John         Good
2        210        Jack         Bad
3        300        Mike         Good
4        473        David        Very Good

答案2

使用Alt- D- F-启用自动筛选F,或者在光标位于列表中时选择数据功能区上的筛选按钮。然后使用 D 列上的文本筛选器筛选“包含”

在此处输入图片描述

答案3

与前两个答案非常相似(尽管可能稍微简单一些,但因此不太通用)但确保保留原始数据并按照问题所示重新编号:

  • 将 Sheet1 复制到 Sheet2。
  • 选择 Sheet2 ColumnD。
  • 数据 > 排序和过滤 – 过滤。
  • 点击向下的箭头,点击全选,然后选择“不好”,确定。
  • 删除除第一行(即以蓝色编号的行)之外的所有可见行。
  • 单击“过滤器”。
  • 选择“A1”并Ctrl按下,向下拖动至所需的距离。

答案4

Sheet2 中的 B1

=(IFERROR(INDEX(Sheet1!B$1:B$4,SMALL(IF(Sheet1!D$1:D$4="bad",,if(Sheet1!D$1:D$4="",,ROW(Sheet1!B$1:B$4)-Row(Sheet1!B$1)+1)),ROW(Sheet1!B1))),""))

Sheet2 中的 C1

=(IFERROR(INDEX(Sheet1!C$1:C$4,SMALL(IF(Sheet1!D$1:D$4="bad",,if(Sheet1!D$1:D$4="",,ROW(Sheet1!C$1:C$4)-Row(Sheet1!C$1)+1)),ROW(Sheet1!C1))),""))

Sheet2 中的 D1

=(IFERROR(INDEX(Sheet1!D$1:D$4,SMALL(IF(Sheet1!D$1:D$4="bad",,if(Sheet1!D$1:D$4="",,ROW(Sheet1!D$1:D$4)-Row(Sheet1!D$1)+1)),ROW(Sheet1!D1))),""))

相关内容