Excel:如果满足条件,则给出单元格的名称

时间:2014-11-24 09:34:46

标签: excel

想象一下Excel中有下表。如何获取连续的非空单元格列表。 理想情况下,这将是一个给定的单元格名称,就像这里的'Honey'等。但我会选择一个带有Excel格式名称的列表,即B,D,G。 计算单元格数> 0是相当容易的但是如何获得它们的身份

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

1 个答案:

答案 0 :(得分: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

例如:(如果成分在B-G栏中)

=Ingredients(B1:G1;B2:G2)