我有一个检查一列值的公式,如果有值,则将这些值放在逗号分隔的字符串中。我的问题是,如果列列表中只有一个我正在检查,除非有多个值,我怎样才能排除公式输出值?
=BI3801&IF(BI3802<>"",", "&BI3802,"")&IF(BI3803<>"",", "&BI3803,"")&IF(BI3804<>"",", "&BI3804,"")
如果有值,则输出:&#34; value1,value2&#34;
答案 0 :(得分:0)
您可以将其包装在另一个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
然后在工作表上,你可以使用这样的函数:
=CommaDelim(A1:A5)
答案 1 :(得分:0)
我拿了一个范围C1并输入了公式=CountBlank(A1:A5)
,它计算了所有空白,然后是我原来的公式,=IF(C1<4, myCommaDelimitedFormula, "")