1

我正在使用一些带有大量嵌套if语句的公式制作一个复杂的电子表格,我想知道是否有一个很好的类似 IDE 的解决方案。一段时间后它会变得非常复杂,知道括号在哪里关闭并记住if我在哪个语句可能会在一段时间后感到困惑。

我试过将它粘贴到 NetBeans 和 Notepad+ 中,这有助于括号,如果我将它空白,那么这有助于我记住我所在的 if 语句。但是,我想要一个更好的解决方案

我知道使用 VBA 可以使我尝试做的任何事情的效率提高一百万倍,但我不想这样做,这不是这个问题的目的。

我怀疑这是否可能,但如果有人发现我可以做一些类似IntelliSense的功能,那就太棒了。

4

1 回答 1

2

我用记事本++。我发现这是我能找到的最好的解决方案。对于任何感兴趣的人,这是我的最终公式……有点乱。这是我为了好玩/体验/其他什么而做的一个按小时计费的电子表格。

=if(
    row()>=($J$4+2)
    , ""
    , if(
        row() = 2
        , if(
            or(
                MID(TEXT(datevalue($J$3), "ddEE"),3,9) = "Sat"
                , MID(TEXT(datevalue($J$3), "ddEE"),3,9) = "Sun"
            )
            , if (
                MID(TEXT(datevalue($J$3), "ddEE"),3,9) = "Sat"
                , if (
                    $J$8="No"
                    , if (
                        $J$9="No"
                        , MID(TEXT(datevalue($J$3)+2, "ddEE"),3,9)&" - "&datevalue($J$3)+2
                        , MID(TEXT(datevalue($J$3)+1, "ddEE"),3,9)&" - "&datevalue($J$3)+1
                    )
                    , MID(TEXT(datevalue($J$3), "ddEE"),3,9)&" - "&datevalue($J$3)
                )
                , if (
                    $J$9="No"
                    , MID(TEXT(datevalue($J$3)+1, "ddEE"),3,9)&" - "&datevalue($J$3)+1
                    , MID(TEXT(datevalue($J$3), "ddEE"),3,9)&" - "&datevalue($J$3)
                )
            )
            , MID(TEXT(datevalue($J$3), "ddEE"),3,9)&" - "&datevalue($J$3)
        )
        , if(
            or(
                isnumber(
                    search(
                        "Sat",A1
                    )
                )
                ,isnumber(
                    search(
                        "Fri"
                        , A1
                    )
                )
            )
            ,if(
                isnumber(
                    search(
                        "Sat"
                        , A1
                    )
                )
                ,if(
                    $J$9="No"
                    , MID(TEXT(datevalue(right(A1,len(A1)-5))+2, "ddEE"),3,9)&" - "&datevalue(right(A1,len(A1)-5))+2
                    , MID(TEXT(datevalue(right(A1,len(A1)-5))+1, "ddEE"),3,9)&" - "&datevalue(right(A1,len(A1)-5))+1)
                , if(
                    isnumber(
                        search(
                            "Fri"
                            , A1
                        )
                    ),
                    if (
                        $J$8="No"
                        , if (
                            $J$9="No"
                            , MID(TEXT(datevalue(right(A1,len(A1)-5))+3, "ddEE"),3,9)&" - "&datevalue(right(A1,len(A1)-5))+3
                            , MID(TEXT(datevalue(right(A1,len(A1)-5))+2, "ddEE"),3,9)&" - "&datevalue(right(A1,len(A1)-5))+2
                        )
                        , MID(TEXT(datevalue(right(A1,len(A1)-5))+1, "ddEE"),3,9)&" - "&datevalue(right(A1,len(A1)-5))+1
                    ),
                )
            )
            , MID(TEXT(datevalue(right(A1,len(A1)-5))+1, "ddEE"),3,9)&" - "&datevalue(right(A1,len(A1)-5))+1
        )
    )
)
于 2012-05-06T22:18:19.620 回答