How can we improve Excel for Windows (Desktop Application)?

Add an IFCOND() function

similar to IFERROR, add a function that only evaluates second argument if first argument not met, like

=IFCOND([Formula],">5",5)

instead of

=IF([Formula]>5,5,[Formula])

This would make a lot of formulas much shorter and also improve execution time, as it would only have to evaluate [Function] once instead of twice if the condition is not met.

48 votes
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)

    We’ll send you updates on this idea

    Anonymous shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    13 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...
      • Carole commented  ·   ·  Flag as inappropriate

        Every single time I use Excel I wish this formula already existed. There is so much time spent on copying and pasting long complex formulas to first test a condition based on that formula and then return the result of the formula.

        This would also basically replace the need to create a lot of other suggested IF formulas as the condition can be specified rather than having to be its own variation on an IF formula.

      • Harlan Grove commented  ·   ·  Flag as inappropriate

        Kenneth,

        I didn't mention stack access other than the top. I don't want to recreate FORTH.

        Being able to create names on the fly would be good. About time most of the XLM functions became available in non-macro worksheets. Unfortunately, SET.NAME() raises the ticklish question whether expressions in cell formulas could change ALREADY DEFINED names, and whether ad hoc names created while evaluating formulas should be deleted when formula evaluation completes.

      • Kenneth Barber commented  ·   ·  Flag as inappropriate

        I think that support for named variables would be better than trying to track where on a stack you pushed values that you wanted to save.

      • Harlan Grove commented  ·   ·  Flag as inappropriate

        Poor example, as =MIN(5,[Formula]) would suffice.

        I get the point, but PUSH and POP functions would work as long as PUSH returned its argument's value. That is, something like

        =IF(PUSH(very_complex_expression)>=0,SQRT(PUSH(POP())),IF(PUSH(POP())<0,PUSH(POP())&" is negative",IF(NOT(ISERROR(PUSH(POP()))),PUSH(POP())&" not numeric",POP())))

        OK, PUSH(POP()) would be very common, so maybe a PPOP() or GET().

      • Thierry B. commented  ·   ·  Flag as inappropriate

        I vote for it too. It could also be seen as an extension of the SUMIF function where the first argument could be, not only a range but an expression : SUMIF ( [formula], criteria)

      • Graham commented  ·   ·  Flag as inappropriate

        I can't vote as I've used them all but this feature would save a lot of time! With the usual method if a formula changes you basically need to edit it twice, which is a huge hassle, not to mention the shortened processing time.

      • Cathy Harley (EXCEL PM) commented  ·   ·  Flag as inappropriate

        Thanks for the feedback! We're building a backlog for new functions we want to add to the product, so keep voting for this one if you'd like to see it in the product.

      • Peter commented  ·   ·  Flag as inappropriate

        This can really be made as a generalization of IFERROR.. please include!!

      • sven commented  ·   ·  Flag as inappropriate

        Yes! I often think this same thing. Sometimes if the result of my formula is X, I want to return Y, otherwise just return the result of that formula. So you have to type the whole formula again!

      Feedback and Knowledge Base