2014-11-24 109 views
0

想象一下Excel中有下列表格。如何獲得連續的非空單元列表。 理想情況下這將是一個給定的單元格名稱像這裏與'蜂蜜'等。但我會用Excel單元格名稱來解決列表,即B,D,G。 這是相當容易計算細胞> 0,但如何的數量得到他們的認同Excel:如果條件符合,則提供單元格的名稱

recipe No Honey Sugar Chocolate Berries Juice Milk  Result 
     1  5  0   2   0  0  3  Honey,Chocolate,Milk 
+0

將字符串的變量數連接到單個字符串是一個常見問題。使用「原生」Excel公式幾乎是不可能的。你需要VBA。 – Fratyx 2014-11-24 10:15:10

+0

如果我知道如何,我會在Perl中完成它。實際的語言或格式不是一個限制 – eject 2014-11-24 10:24:15

回答

0

你可以使用這個VBA函數。通過將標題(成分)作爲第一個參數,將行(範圍)與作爲第二個的量(任何)的行(範圍)進行傳遞來調用它。將它放入VBA模塊後,可以像使用本機Excel函數一樣使用此函數。 (它爲這裏正確的輸入不檢查,那麼兩個範圍(頭和量)必須包含的細胞的相等計數)

Function Ingredients(headers As Range, counts As Range) As String 
    Dim i As Integer 
    Dim s As String 
    Dim sp As String 

    For i = 1 To headers.Cells.Count 
     If counts(i) <> 0 Then 
      s = s + sp + headers(i) 
      sp = ", " 
     End If 
    Next 
    Ingredients = s 
End Function 

作爲例子:(如果成分在列BG)

=Ingredients(B1:G1;B2:G2) 
相關問題