Excel - 如果第一个工作表的特定单元格中的文本为Y(或是),则将整行移动到下一个工作表中

时间:2012-11-09 10:11:10

标签: excel conditional excel-formula

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

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

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

任何指导都会被广泛接受。

4 个答案:

答案 0 :(得分:1)

移动是Excel中的两步过程(即剪切 - 粘贴),因此无法使用公式完成此操作。

您可以查看

  1. 自动过滤以显示基础数据工作表中的所有Y记录...然后您可以手动复制/粘贴它们
  2. 高级过滤器,用于显示甚至复制Y记录,但在同一工作表中
  3. 编写VBA程序(不是函数)为您执行提取作业,首先手动设置每个记录中的Y / N字段,然后按下移动记录的按钮;你应该尽可能地捕获将Y输入第3列以自动触发移动程序的事件,但我不推荐它......如果用户不小心输入了Y ...
  4. 最后你可以在提取表上插入一个数组公式来显示Y记录;例如:
  5. 第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记录得到一个假的错误

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

答案 1 :(得分:0)

简单地将= sign放在你想要看到结果的位置,而不是转到整行并将光标拖动到向下按Enter键。而已。 关注:那是T.J

答案 2 :(得分:0)

我输入一些数据,即Sheet1中的客户名称; s A1单元格,我使用此公式在Sheet2&#39的单元格B1中使用此名称= Sheet1!B1,现在我想移动(作为CUT传输)数据来自sheet2; B1到sheet3" C1" cel,从哪个公式可以,ples告诉

答案 3 :(得分: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并隐藏那些令人讨厌的公式列:)。