Forum Discussion

vinh nhut nguyen's avatar
vinh nhut nguyen
Copper Contributor
Mar 25, 2017
Solved

Discrepancy between function Argument and cell display

When I type =IF(OR(K24 = H16:H22),"","<-- MUST BE A, B, C, D, E ,F or G") in cell L24 of Music Notation tab, the function Arguments window return correct formula result but the cell gives #VALUE.

 

Calculation step evaluates H16:H22 as an #VALUE.

 

OR function should be allowed to check a cell value equal to values of a table?

  • Yes, that could be

    =IF(ISERROR(MATCH(K24,H16:H22,0)),
       "<-- MUST BE A, B, C, D, E ,F or G",
       "")

    or

    =IF(
       (K24>=H16)*(K24<=H22),
       "",
       "<-- MUST BE A, B, C, D, E ,F or G")

     

     

     

     

8 Replies

  • vinh nhut nguyen,

     

    I have actually the same problem but with the MATCH function. The function argument window shows the correct result (2), but in the cell I get #VALUE...

     

    • JoeUser2004's avatar
      JoeUser2004
      Bronze Contributor

      Boudewijn_Knooren 

       

      You need to array-enter the formula:  press ctrl+shift+Enter instead of just Enter.

       

      The Function Evaluator (and Evaluate Formula) always behave as if the formula is array-entered.  Consequently, they might work when a normally-entered does not.

       

      In the future, please post a new inquiry instead of piggybacking an old posting, especially one that resolved 5 years ago.

  • SergeiBaklan's avatar
    SergeiBaklan
    Diamond Contributor

    Yes, that could be

    =IF(ISERROR(MATCH(K24,H16:H22,0)),
       "<-- MUST BE A, B, C, D, E ,F or G",
       "")

    or

    =IF(
       (K24>=H16)*(K24<=H22),
       "",
       "<-- MUST BE A, B, C, D, E ,F or G")

     

     

     

     

    • vinh nhut nguyen's avatar
      vinh nhut nguyen
      Copper Contributor
      Thank you very much.

      Your proposed solutions works very well. I understand well the first solution but cannot understand how your second solution works. Please let me know where I can read to understand the term (K24>=H16)*(K24<=H22).
      • SergeiBaklan's avatar
        SergeiBaklan
        Diamond Contributor

        Okay, the logic is

         

        1) In cells from H16 to H22 we have the letters in alphabetical order

        2) we'd like to check if the letter in K24 is one of above

        3) if so the letter in K24 shall be more or equal than one in H16 and less or equal than one in H22. Other words, both (K24>=H16) and (K24<=H22) are to be TRUE. Otherwise the letter is out of our range.

        4) In Excel logical TRUE is equivalent of numeric 1; and logical FALSE is 0

        5) Thus if both of our conditions are TRUE (aka 1), their multiplication gives also 1. If at least one of them is FALSE result will be also FALSE, or zero (e.g. 1*0=0)

        6) Thus (K24>=H16)*(K24<=H22) returns 1 if our letter is within the range and 0 if not

        7) Above 1 or 0 could be interpreted as logical TRUE or FALSE

         

        Couple of more notes

        a) Stay on the cell with your formula, in Ribbon at Formulas tab press Evaluate Formula and after that click Evaluate in opened window till calculation of formula is not finished. You'll see how the formula works step by step

        b) if you'd like to convert logical value into numeric one literally use double dash before it. For example, if =(K24>=H16) returns TRUE when =--(K24>=H16) returns 1

  • dilipandey's avatar
    dilipandey
    Copper Contributor

    with "K24 = H16:H22" are you trying to see if H16:H22 contains K24 ?

    If yes, then use match function instead.

     

     

     

    Regards,

    DILIPandey

Resources