Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel函数:如何连接忽略逗号和空值的字符串_Excel_Function - Fatal编程技术网

Excel函数:如何连接忽略逗号和空值的字符串

Excel函数:如何连接忽略逗号和空值的字符串,excel,function,Excel,Function,如何连接下面的字符串,忽略从A1到F1的不同单元格中的逗号和空值 NULL NULL Welcome NULL NaiSen NULL 我的最终结果应该是:欢迎你,奈森 我尝试使用下面的函数,但得到了#值 尝试以下想法: =CONCATENATE(IF(A1="null","",CONCATENATE(SUBSTITUTE(A1,",",""),",")), IF(B1="null","",CONCATENATE(SUBSTITUTE(B1,",",""),

如何连接下面的字符串,忽略从A1到F1的不同单元格中的逗号和空值

 NULL   NULL    Welcome  NULL    NaiSen     NULL
我的最终结果应该是:欢迎你,奈森

我尝试使用下面的函数,但得到了#值

尝试以下想法:

    =CONCATENATE(IF(A1="null","",CONCATENATE(SUBSTITUTE(A1,",",""),",")),
IF(B1="null","",CONCATENATE(SUBSTITUTE(B1,",",""),",")),
IF(C1="null","",CONCATENATE(SUBSTITUTE(C1,",",""),",")),
IF(D1="null","",CONCATENATE(SUBSTITUTE(D1,",",""),",")),
IF(E1="null","",CONCATENATE(SUBSTITUTE(E1,",",""),",")),
IF(F1="null","",SUBSTITUTE(F1,",","")))

您可以像这样使用用户定义的VBA函数

Function concatFunc(v As Range) As String
    Application.Volatile True
    Dim c
    Dim s As String
    For Each c In v
        If IsError(c) = False And CStr(c) <> "," Then
            s = s & CStr(c)
        End If
    Next
    concatFunc = s
End Function
函数concatFunc(v作为范围)作为字符串
应用程序。Volatile True
dimc
像线一样变暗
对于v中的每个c
如果IsError(c)=False且CStr(c)“,”则
s=s&CStr(c)
如果结束
下一个
concatFunc=s
端函数
在VBA中插入代码,如下所示:
Alt-F11,插入模块,粘贴代码

然后从工作表中调用函数,如以下示例所示: =concatFunc(A1:F1)


然后,它可以像任何其他内置Excel功能一样工作。

太好了。谢谢它可以工作,但是当组合多个单元格时,它没有插入逗号(,)。得到的结果是=,,欢迎,,,NaiSen。我现在应该清理这个值。又多了一个不必要的逗号。我想现在没问题了:)哇,你让我的工作很轻松。:)。如果最后一个单元格为空,则在末尾仍然有一个额外的逗号问题。我可以使用RIGHT函数清除最后一个逗号。我不太知道如何从sub()调用VBA函数。Alt-F11,插入模块,粘贴代码,然后从工作表中调用它,如以下示例所示:=concatFunc(A1:F1)
Function concatFunc(v As Range) As String
    Application.Volatile True
    Dim c
    Dim s As String
    For Each c In v
        If IsError(c) = False And CStr(c) <> "," Then
            s = s & CStr(c)
        End If
    Next
    concatFunc = s
End Function