Excel嵌套if语句 - 需要帮助排除故障

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel嵌套if语句 - 需要帮助排除故障相关的知识,希望对你有一定的参考价值。

我需要一些新鲜的眼睛。我一直在逐步进行这项工作,并从让它工作到破碎。此时我的眼睛正在穿越,我可以使用一些帮助。此电子表格中的列H包含计算机ID,列I是日期。如果H和I都是空白的话我希望它什么都不显示(这是我最近破坏它的点,并决定寻求帮助。这个逻辑不包括在内。)如果H或I都有,但两者都没有值,它会显示“NO”。如果H和I都有值,它将调用一个自定义函数,如果该目录尚不存在,将创建该目录。此外,如果目录已创建或存在,我想显示“是”。如果H和I都是空的,我尝试不显示任何内容之前所有功能都正常工作。

这是我正在使用的公式:

=IF(COUNTA(H21:I21)<>COLUMNS(H21:I21), "NO",IF(CREATEDIR(CONCATENATE(TEXT(I21,"yyyy"),"",TEXT(I21,"m-d-yy"),"",H21))=0,"YES", "NO"))

这是我正在使用的VBA功能(路径详细信息省略)

Function CREATEDIR(dateId) If Len(Dir("Z:pathname" & dateId, vbDirectory)) = 0 Then MkDir "Z:pathname" & dateId End If End Function

答案

将UDF更新为以下内容,以便它可以构建完整的文件夹路径,以防它不存在(这将处理网络文件夹路径,如\serverfoldersubfolders以及本地或映射文件夹路径,如Z:pathname)。你需要将sBeginPath设置为它应该是什么:

Function CREATEDIR(dateID) As String

    Dim sBeginPath As String
    Dim sBuildPath As String
    Dim vFolder As Variant
    Dim i As Long

    sBeginPath = "C:Test"
    If Right(sBeginPath, 1) <> "" Then sBeginPath = sBeginPath & ""

    For Each vFolder In Split(sBeginPath & dateID, "")
        If Len(vFolder) > 0 Then
            If Len(sBuildPath) = 0 Then
                If i > 0 Then
                    sBuildPath = "\" & vFolder & ""
                Else
                    sBuildPath = vFolder
                End If
            Else
                If i > 0 Then
                    sBuildPath = sBuildPath & vFolder & ""
                    i = i + 1
                Else
                    sBuildPath = sBuildPath & "" & vFolder
                End If
            End If
            If (Len(sBuildPath) > 0) And (i = 0 Or i >= 3) Then
                If Len(Dir(sBuildPath, vbDirectory)) = 0 Then MkDir sBuildPath
            End If
        Else
            i = i + 1
        End If
    Next vFolder

    CREATEDIR = "YES"

End Function

然后将您的公式更新为以下(使用@pnuts建议的CHOOSE方法):

=CHOOSE(COUNTA(H21:I21)+1,"", "NO",CREATEDIR(CONCATENATE(TEXT(I21,"yyyy"),"",TEXT(I21,"m-d-yy"),"",H21)))

以上是关于Excel嵌套if语句 - 需要帮助排除故障的主要内容,如果未能解决你的问题,请参考以下文章

Excel错误跟踪IF嵌套语句

使用日期在Excel中嵌套的IF语句

方法需要从用户返回字符串。只需要排除故障

需要帮助对 linux Docker 中的 .NET Core 2.1 API 进行故障排除

多个 if 条件,无嵌套

具有多个嵌套AND和OR语句的Excel公式