我需要将过滤后的结果从一张纸动态传输到另一张。一个快速谷歌搜索产生的结果只有一种方法来做一个付费的excel插件,称为kutools。是否有其他方法可以实现这一点,而不会得到空行。
=IF(ISNUMBER(SEARCH("text",Sheet1!A1)),Sheet1!A1,"")
像这样的东西是我的备份选项,但我想知道是否有另一种更好的方法来完成这项任务,这不会让我有一堆空行我必须排序。
答案 0 :(得分:3)
尝试这个小技巧。如果列 B 中没有空,它将起作用。
无插件;没有VBA;该技巧不需要额外的数组公式。
假设我们的数据列在 A 和 B 列中,如:
我们想要应用过滤器并在其他位置提取可见数据。
首先在 C2 中输入:
=IF(SUBTOTAL(3,B2:B2)=0,MIN($C$1:C1)-1,SUBTOTAL(3,$B$2:$B2))
并复制下来:
这是一个不错的顺序列表。现在设置列 B 的过滤器以显示 2 :
“帮助者”栏已调整为保持其良好的连续性。
在另一张表格中,我们现在可以使用典型的INDEX/MATCH
来获取数据。
在 Sheet2 单元格 A1 中输入:
=IFERROR(INDEX(Sheet1!A$1:A$22,MATCH(ROWS($1:1),Sheet1!C$1:C$22,0)),"")
并复制下来:
(使用VBA,不需要“助手”列)
修改#1:强>
如果您不想使用 AutoFilter ,只需抓取 B 列的值 2 的记录strong>,然后在 C2 中输入:
=IF(B2=2,1+MAX($C$1:C1),"")
如果你想获取除 2 记录以外的所有记录,请使用此“帮助”公式:
=IF(B2<>2,1+MAX($C$1:C1),"")