复制Qty> 0的行
我想创build一个Excel公式(不使用VBA)来填充名为“Bill”的表单,该表单基于名为“Prescription”的另一个表单。
例如,在“处方”表中有10行,列标题,数量,价格和总计。 我想将数量> 0的行复制到工作表“Bill”,而没有任何空行。
我知道使用VBA很容易,我只需要复制每一行(包括空白行),设置一个自动filter来隐藏0,然后添加一些VBA来刷新filter,但我很确定我可以做到这一点没有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
MS Query如何?
SELECT * FROM [Prescription$] AS S WHERE S.Qty> 0
使用数据 – >获取外部数据 – > MS查询或你也可以你一个简单的加载项,我做了: http : //blog.tkacprow.pl/excel-tools/excel-sql-add-in-free/
一旦执行查询,您可以随时通过右键单击并在查询表上进行刷新来刷新该查询。
最后find一个从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),"")}