2012-05-06 26 views
1

所以,我使用一些非常疯狂的公式(大量嵌套的if语句)制作复杂的电子表格(主要是为了好玩),并且我想知道是否有人知道好的IDE解决方案。一段时间之后,它会变得非常复杂,并且知道括号关闭的位置,并记住我所处的那条语句可能会在一段时间后引起混淆。用于Excel公式的类似于IDE的解决方案(不是VBA)

我试过把它粘贴到Netbeans以及记事本++中,这有助于使用括号,如果我使用了空格,那么这有助于我记住哪些语句我在,但我想我会问知道是否知道电子表格公式的超棒编辑器。谢谢!

注:我知道无论我试图做什么都可以使用VBA更有效地完成一百万次,但我不想这样做,这不是这个问题的目的。不管怎样,谢谢:)

注2:我怀疑这会是可能的,但如果有人发现我的东西,会做一些IntelliSense样的功能,我想我会给你喜欢200点名誉什么的(最可能是“或某物”,哈哈)。那太棒了。

+1

如何在几个步骤(嵌套ifs)拆分公式,每个在一个单元格?在外部IDE中编写公式非常棒,但是在使用/维护电子表格时,这将非常麻烦。 – assylias

+0

这比你要求的少,但我这样做:http://stackoverflow.com/a/1447343/58845 – jtolle

回答

0

我用记事本++。我发现这是我能找到的最佳解决方案。对于任何有兴趣的人来说,这是我的最终公式......有点混乱。这是一个hourly pay spreadsheet事情,我正在做的乐趣/经验/无论。

=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 
     ) 
    ) 
)