复制数量> 0的行

时间:2014-10-27 13:17:45

标签: excel excel-formula excel-2010

我想创建一个Excel公式(不使用VBA)来填充名为“Bill”的工作表,该工作表基于另一个名为“Prescription”的工作表。

我在“处方”表中有10行,其中包含标题,数量,价格和总计。我想将Quantity> 0的行复制到工作表“Bill”而不留空行。

我知道使用VBA很容易,我所要做的就是复制每一行(包括空白行),设置一个自动过滤器来隐藏0,然后添加一些VBA来刷新过滤器,但我是非常确定我可以在没有VBA的情况下做到这一点(可能使用数组公式或其他东西来获得第N个非0值)。

所以这是“处方”:

Title|Qty|Price| Total
----------------------
Test1|  0|99.99|     0
Test2|  1|99.99| 99.99
Test3|  0|99.99|     0
Test4|  3|99.99|299.97

我想要一个公式进入另一张表:

Title|Qty|Price| Total
----------------------
Test2|  1|99.99| 99.99
Test4|  3|99.99|299.97

2 个答案:

答案 0 :(得分:1)

MS Query怎么样?:

SELECT * FROM [Prescription$] AS S WHERE S.Qty> 0

使用数据 - >获取外部数据 - > MS查询或者您也可以使用我制作的简单加载项: http://blog.tkacprow.pl/excel-tools/excel-sql-add-in-free/

一旦执行查询,您可以随时通过右键单击并在查询表上点击刷新来刷新它。

答案 1 :(得分:0)

最后找到了一个从Microsoft KB数据库完成工作的数组公式: http://support.microsoft.com/kb/101167

最终公式:

={IFERROR(INDEX(Prescription!$I$1:$I$100,SMALL(IF(ISEMPTY(Prescription!$K$1:$K$100),"",ROW(Prescription!$K$1:$K$100)),ROW(2:2))-ROW(Prescription!$K$1:$K$100)+1),"")}