Forum Discussion

mrcarlyoungblood's avatar
mrcarlyoungblood
Copper Contributor
Oct 04, 2024
Solved

Need help with this function statement. Not sure if I can use a if(or, or a if(and(or

=IF(J2="CEL",N2+30,IF(J2="AZA",N2+30,IF(J2="CUN",N2+30,IF(J2="LIN",L2+60,IF(J2="EXP",L2+60,IF(J2="CYL",L2+30,IF(J2="GLO",L2+30,IF(J2="MSC",L2+30,IF(J2="SIL",L2+30,IF(J2="TAU",L2+30,IF(L2="SHL",L2+45,IF(J2="SCE",L2+45,IF(J2="SEA",N2+45,IF(J2="NOR",N2+14))))))))))))))

 

I still have more values to add but I ran out of space. Just trying to clean it up so I can add more parameters. Thanks. ... Carl

  • mrcarlyoungblood 

    =IF(J2="CEL",N2+30,

    IF(J2="AZA",N2+30,

    IF(J2="CUN",N2+30,

    IF(J2="LIN",L2+60,

    IF(J2="EXP",L2+60,

    IF(J2="CYL",L2+30,

    IF(J2="GLO",L2+30,

    IF(J2="MSC",L2+30,

    IF(J2="SIL",L2+30,

    IF(J2="TAU",L2+30,

    IF(L2="SHL",L2+45,

    IF(J2="SCE",L2+45,

    IF(J2="SEA",N2+45,

    IF(J2="NOR",N2+14))))))))))))))

     

    With OR you can use the below formula.

     

    =IF(OR(J2="CEL",J2="AZA",J2="CUN"),N2+30,

    IF(OR(J2="LIN",J2="EXP"),L2+60,

    IF(OR(J2="CYL",J2="GLO",J2="MSC",J2="SIL",J2="TAU"),L2+30,

    IF(OR(L2="SHL",J2="SCE"),L2+45,

    IF(J2="SEA",N2+45,

    IF(J2="NOR",N2+14))))))

     

4 Replies

  • mrcarlyoungblood 

    Other functions that make the formula more readable are IFS and SWITCH.

    =SWITCH(
        string,
        "CEL", altValue  + 30,
        "AZA", altValue  + 30,
        "CUN", altValue  + 30,
        "LIN", baseValue + 60,
        "EXP", baseValue + 60,
        "CYL", baseValue + 30,
        "GLO", baseValue + 30,
        "MSC", baseValue + 30,
        "SIL", baseValue + 30,
        "TAU", baseValue + 30,
        "SHL", baseValue + 45,
        "SCE", baseValue + 45,
        "SEA", altValue  + 45,
        "NOR", altValue  + 14
    )

    (the use of defined names highlighted an inconsistency in your original formula).

    Sergei's ideas of grouping data or having it in a lookup table are both worth consideration.

  • SergeiBaklan's avatar
    SergeiBaklan
    Diamond Contributor

    mrcarlyoungblood 

    One variant as OliverScheurich  suggested

    =IF( OR( J2 = {"CEL","AZA","CUN"} ),       N2+30,
     IF( OR( J2 = {"LIN","EXP"} ),             L2+60,
     IF( OR( J2 = {"GLO","MSC","SIL","TAU"} ), L2+30,
     IF( OR( J2 = {"SHL","SCE"} ),             L2+45,
     IF(     J2 =  "SEA",                      N2+45,
     IF(     J2 =  "NOR",                      N2+14
    ))))))

    Another variant create the table tbl like

    and use formula

    =LET(
      l, XLOOKUP(J2, tbl[J], tbl[L]),
      n, XLOOKUP(J2, tbl[J], tbl[N]),
      IF(l, L2+l, N2+n)
    )
  • mrcarlyoungblood 

    =IF(J2="CEL",N2+30,

    IF(J2="AZA",N2+30,

    IF(J2="CUN",N2+30,

    IF(J2="LIN",L2+60,

    IF(J2="EXP",L2+60,

    IF(J2="CYL",L2+30,

    IF(J2="GLO",L2+30,

    IF(J2="MSC",L2+30,

    IF(J2="SIL",L2+30,

    IF(J2="TAU",L2+30,

    IF(L2="SHL",L2+45,

    IF(J2="SCE",L2+45,

    IF(J2="SEA",N2+45,

    IF(J2="NOR",N2+14))))))))))))))

     

    With OR you can use the below formula.

     

    =IF(OR(J2="CEL",J2="AZA",J2="CUN"),N2+30,

    IF(OR(J2="LIN",J2="EXP"),L2+60,

    IF(OR(J2="CYL",J2="GLO",J2="MSC",J2="SIL",J2="TAU"),L2+30,

    IF(OR(L2="SHL",J2="SCE"),L2+45,

    IF(J2="SEA",N2+45,

    IF(J2="NOR",N2+14))))))

     

    • mrcarlyoungblood's avatar
      mrcarlyoungblood
      Copper Contributor
      OMG!!! Thank you so much. I knew there had to be a better way. Thank you, thank you, thank you! ...Carl

Resources