Excel 如何确定是否只有一个值而不是多个值?

Excel 如何确定是否只有一个值而不是多个值?,excel,excel-formula,Excel,Excel Formula,我有一个公式,它检查一列值,如果有值,则将这些值放在逗号分隔的字符串中。我的问题是,如果我正在检查的列列表中只有一个,我如何排除公式输出值,除非有多个值 =BI3801&IF(BI3802<>"",", "&BI3802,"")&IF(BI3803<>"",", "&BI3803,"")&IF(BI3804<>"",", "&BI3804,"") =BI3801&IF(BI3802“,”和BI3802“,”和I

我有一个公式,它检查一列值,如果有值,则将这些值放在逗号分隔的字符串中。我的问题是,如果我正在检查的列列表中只有一个,我如何排除公式输出值,除非有多个值

=BI3801&IF(BI3802<>"",", "&BI3802,"")&IF(BI3803<>"",", "&BI3803,"")&IF(BI3804<>"",", "&BI3804,"")
=BI3801&IF(BI3802“,”和BI3802“,”和IF(BI3803“,”和BI3803“,”)和IF(BI3804“,”和BI3804“)

如果有值,则输出:“value1,value2”

您可以将其包装在另一个
if
语句中。列A的示例

=IF(COUNTA(A:A)>1,your_formula,"")

更新

您可能会发现
VBA
在这里更适合您。只要有两个或多个非零值,此函数将获取一列并返回逗号分隔的列表

将其粘贴到VBA编辑器中的新模块中

Function CommaDelim(rng As Range)
    Dim outputStr As String
    Dim r As Range
    Dim r2 As Range

    If Application.WorksheetFunction.CountIf(rng, "<>0") < 2 Then
        CommaDelim = ""
        Exit Function
    End If

    For Each r In rng
        If r.Value <> 0 Then
            outputStr = outputStr & r.Value & ","
        End If
    Next r
    outputStr = Left(outputStr, Len(outputStr) - 1)

    CommaDelim = outputStr
End Function

< /P> < P>我取了一个范围C1,放入公式<代码>=COUNTBLASE(A1:A5)< /代码>,计算所有的空白,然后在我原来的公式中,<代码>=IF。(c1这与VBA有什么关系?你的问题似乎不是关于编程。@rory.ap这是关于excel公式。excel公式不是关于编程。这个问题不属于堆栈溢出;也许有一个专门讨论MS Office应用程序的论坛或问答网站?事实上,我知道有一些。只需谷歌一下。@rory.ap为什么不呢如果你不想帮助别人,你就离开这个帖子。如果这不属于堆栈溢出,为什么会有大量与公式等相关的问题?你是对的。我的错。这是一个灰色区域,但大家一致认为Excel公式是关于这个主题的。这些值不是真的空的,它们只是空的,因为在那些co中列范围,它们是出于其他原因进行公式计算的。如果我在列表中有两个值,而其余值为空但不是空值,那么这实际上会返回重复的值。此外,我不能让这是一个模块,该工作表将导入到另一个工作簿,因此会丢失该函数。也许您可以更新您的问题以包含samp你的数据的le——因为我用我自己的虚拟数据测试了它,它很好地工作了——把它放在你的另一个范围列表列=IF(A3=“--”,“”,A3)中,然后检查该列表。我包括了一幅这是如何工作的图像。我们的数据有什么不同?

=CommaDelim(A1:A5)