[英]Excel - Copy rows from one sheet to another sheet based in a criteria without VBA
我在第一张表中有一个具有下一个结构的 excel
ID | 颜色 | 尺寸 |
---|---|---|
001 | 红色的 | 一个 |
002 | 绿色 | 一个 |
002 | 蓝色的 | 一个 |
002 | 蓝色的 | 乙 |
我需要将颜色为蓝色的行自动复制到第二张表(包括稍后包含在第一张表中的记录),只有没有 VBA 的公式
用例子
ID | 颜色 | 尺寸 |
---|---|---|
002 | 蓝色的 | 一个 |
002 | 蓝色的 | 乙 |
我尝试在第二张表中使用 nex 公式
=IF('Sheet1'!$B2="blue";'Sheet1'!A2;"")
我得到了以下结果
ID | 颜色 | 尺寸 |
---|---|---|
002 | 蓝色的 | 一个 |
002 | 蓝色的 | 乙 |
但我需要不匹配的行不要出现甚至空白
如果 VBA 有什么方法可以做到这一点?
我使用 Excel 2010
非常感谢大家
如果您在“Sheet1”中使用附加列,例如表格的“D”,也可以不使用 VBA。 在“D1”中写入“Counter”然后在“D2”中写入:
=IF(B2="blue";MAX($D$1:D1)+1;0)
并复制到下面的行。 这是 B2 或 0 中具有蓝色值的行的递增计数器。
然后在新工作表“Sheet2”中将标题行(“ID”、“Color”、“Size”)从“Sheet1”复制到“A1:C1”。
在“A2”中写:
=IFERROR(INDEX(Sheet1!$A$2:$C$100;MATCH(ROW()-1;Sheet1!$D$2:$D$100;COLUMN());"")
将“A2”单元格复制到“C2”,然后将整行“A2:C2”复制到最后一行。
这些函数在“Sheet1”的“D”列中查找 ROW()-1,如果找到则显示整行。 IFERROR 隐藏其他行,因为如果找不到 #N/A 将显示在您范围内的空单元格中。
$A$2:$C$100 - “Sheet1”中的源表。
$D$2:$D$100 - 计数器的范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.