1

我正在尝试设置一个公式,其中工作表 1 是日期、名称列表,最后一列 (I) 是简单的 Y 或 N(表示是或否)。

如果答案是 Y(或是),那么我希望将整行复制到下一个工作表(工作表 2)中,如果答案是 N(或否),那么它不会进入下一个工作表。

这有可能吗,如果可以,我怎么能通过单元格公式来做到这一点(如果可能的话,我不想更改 srcipt 模块)?

任何指导将不胜感激。

4

5 回答 5

1

移动是 Excel 中的一个两步过程(即剪切 - 粘贴),因此无法通过公式来完成。

你可以调查一下

  1. 自动过滤以显示基础数据工作表中的所有 Y 记录...然后您可以手动复制/粘贴它们
  2. 用于显示甚至复制 Y 记录的高级过滤器,但在同一个工作表中
  3. 编写一个 VBA 程序(不是函数)为您完成提取工作,您首先将手动设置每个记录中的 Y/N 字段,然后按下移动记录的按钮;您可以捕获在第 3 列中输入 Y 的事件以自动触发移动过程,但我不推荐它......如果用户不小心输入 Y 怎么办......
  4. 最后,您可以在提取表上插入一个数组公式来显示 Y 记录;例子:

表 1

      A       B      C
1  Index    Info   Flag
2      1       A      Y
3      2       B      N
4      3       C      N
5      4       D      Y

表 2

  • 将工作表 1 的标题复制到 A1..A3
  • 选择 B1..B3 并输入公式=IF(Sheet1!C2="Y",Sheet1!A2:C2)
  • 按 Ctrl+Shift+ENTER 保存为数组公式
  • 向下复制 B1..B3

不过不是很好,因为每条 N 记录都会得到一个 FALSE FALSE FALSE

我个人更喜欢 3) ... 按钮解决方案

于 2012-11-09T10:52:08.183 回答
1

你可以做一个解决方法。

在原始工作表中创建另一个选项卡或表格,通过条件提取所有行。这可以通过嵌套在 IF 语句中的 VLOOKUP 来完成。(如果单元格 = YES,则 VLOOKUP 行的其余部分)。我很抱歉没有包括确切的公式,但在该部分很容易找到视频等。

在其他工作表上,使用 PowerQuery 查询原始工作表,并附加新表中的行。

于 2019-07-24T17:55:49.190 回答
0

只需在您想查看结果的地方输入 = 符号,然后转到整行并将光标向下拖动按 Enter。而已。看:那是TJ

于 2013-12-08T07:17:05.563 回答
0

这不是最漂亮的解决方案,但它确实有效,我在工作簿上使用它来记录收到的支票。如果支票是过时的,它会延续该行,以便该行出现在下一张纸的顶部。它是一个数组公式,所以所有数据都是连续的。

让我们使用上面 MikeD 的数据示例并对其进行扩展:

      A       B      C            D                  E
1  Index    Info   Flag        Index 2             Info 2
2     1       A      Y    =If(C2="Y",A2,"")  =If(C2="Y",B2,"")
3     2       B      N    =If(C3="Y",A3,"")  =If(C3="Y",B3,"")
4     3       C      N    =If(C4="Y",A4,"")  =If(C4="Y",B4,"")
5     4       D      Y    =If(C5="Y",A5,"")  =If(C5="Y",B5,"")

基本上,您要在数据右侧添加列,以检查列 C 是否等于“Y”并一次复制一个单元格。所以我们最终得到的是:

      A       B      C      D        E
1  Index    Info   Flag  Index 2  Info 2
2     1       A      Y      1        A
3     2       B      N    
4     3       C      N    
5     4       D      Y      4        D

然后在单元格 A1 中的 Sheet2 上输入以下数组公式(不要忘记使用 Ctrl+Shift+Enter):

=IFERROR(INDEX(Sheet1!$D$1:$D$5,SMALL(IF(Sheet1!$D$1:$D$5<>"",ROW(Sheet1!$D$1:$D$5)),ROW(1:1))),"")

然后在单元格 B1 中输入一个类似的数组公式:

=IFERROR(INDEX(Sheet1!$E$1:$E$5,SMALL(IF(Sheet1!$E$1:$E$5<>"",ROW(Sheet1!$E$1:$E$5)),ROW(1:1))),"")

然后您可以突出显示 A1:B1 并将公式向下拖动到 A1:B5 ,您应该会看到:

 Index 2  Info 2
    1       A
    4       D

然后您可以返回到 Sheet1 并隐藏那些看起来令人讨厌的公式列:)。

于 2017-08-04T14:44:12.093 回答
0

我在 Sheet1;s A1 单元格中输入了一些数据,即客户名称,我在 sheet2 的单元格 B1 中使用此名称使用此公式 =Sheet1!B1,现在我想将数据从 sheet2;B1 移动(传输为 CUT)到 sheet3 的“C1 “cel,从哪个公式可以得出,请告诉我

于 2016-01-21T11:44:48.010 回答