![](/img/trans.png)
[英]excel vba copy cells to another sheet if cell value is greater than 0
[英]Index only cells in a column from another sheet if another cell in same row has a value greater than 0
因此,下面有一個我想做的事的例子。 基本上,只有在工作Sheet 1
Column W
的值大於0時,才需要將工作Sheet 1
Index Column B
到工作Sheet 2
如果不是,則不希望將其包括在內。要索引的唯一列是B
從第5行開始說100。與Column W
相同。
我發現這是我自己想要做的事, 這與我想要做的事非常相似,但我無法弄清楚。
Sheet 1
Row# Column B | Column(s)… | Column W
=================================
5) Thing 1 | | 0
6) Thing 2 | | 3
7) Thing 3 | | 0
8) Thing 4 | | 1
Sheet 2
Row# Column B | Column C | Column D
=================================
5) Thing 2 | 3 |
6) Thing 4 | 1 |
7) | |
8) | |
編輯#3
您可以使用SMALL , LARGE函數從Sheet1
Column B
返回值。
假設您使用了以下名稱 :
Sheet1!B5:B100
Sheet1!W5:W100
這是要在Sheet2
單元格B5中放置的公式。 請注意,這是一個數組公式,因此您需要按Ctrl + Shift + Enter進行確認。
{=IFERROR(INDEX(Sheet1ColB,SMALL(IF((Sheet1ColW>0)*(LEN(Sheet1ColW)>0),ROW(Sheet1ColW)),ROW()-4)-4),"")}
要么
{=IFERROR(INDEX(Sheet1ColB,LARGE(IF((Sheet1ColW>0)*(LEN(Sheet1ColW)>0),ROW(Sheet1ColW)),ROW()-4)-4),"")}
然后,您可以使用INDEX + MATCH從Sheet2
C 列中的Sheet1
W列返回值:
=IFERROR(INDEX(Sheet1ColW,MATCH(B5,Sheet1ColB,0)),"")
在上面的屏幕截圖中,解決方案2使用的是AGGREGATE ,其邏輯與SMALL / LARGE相同。
如您所見,樣本數據已考慮到Sheet 1 Col W
重復值, Sheet1
上W 列和B列 Sheet1
空白單元格以及僅在Sheet1
上B列中的空白單元格為負值或0
值。
干杯:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.