Home » Evaluate Concatenated Math Rows

Evaluate Concatenated Math Rows

All rows carry one mathematical operator (to simplify only 4 basic maths operators which are +, -, * and / ). Concat all cells to the left of operator and perform mathematical operation on concatenation of all cells to the right of operator. Ex. Row 2 – Left of operator concatenation: 1354 Right of operator concatenation: 15205 Mathematical operation for + = 1354 + 15205 = 16559 Row 3 = 191031019/9 = 21225668.78

📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 472
Challenge Difficulty: ⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn

Solving the challenge of Evaluate Concatenated Math Rows with Power Query

Power Query solution 1 for Evaluate Concatenated Math Rows, proposed by Kris Jaganah:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Ans = Table.AddColumn(
    Source, 
    "Answer expected", 
    each Expression.Evaluate(Text.Combine(List.Transform(Record.ToList(_), each Text.From(_))))
  )
in
  Ans
Power Query solution 2 for Evaluate Concatenated Math Rows, proposed by Aditya Kumar Darak 🇮🇳:
let
  Source = Excel.CurrentWorkbook(){[Name = "data"]}[Content], 
  Return = Table.TransformRows(
    Source, 
    each Expression.Evaluate(Text.Combine(List.Transform(Record.ToList(_), Text.From)))
  )
in
  Return
Power Query solution 3 for Evaluate Concatenated Math Rows, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Sol = Table.AddColumn(
    Source, 
    "Answer", 
    each 
      let
        a = Record.ToList(_), 
        b = List.Transform(
          Text.SplitAny(Text.Combine(List.Transform(a, Text.From)), "+-*/"), 
          Number.From
        ), 
        c = 
          if List.Contains(a, "+") then
            b{0} + b{1}
          else if List.Contains(a, "-") then
            b{0} - b{1}
          else if List.Contains(a, "/") then
            b{0} / b{1}
          else
            b{0} * b{1}
      in
        c
  )[[Answer]]
in
  Sol
Power Query solution 4 for Evaluate Concatenated Math Rows, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Sol = Table.AddColumn(
    Source, 
    "Answer", 
    each Expression.Evaluate(Text.Combine(List.Transform(Record.ToList(_), Text.From)))
  )[[Answer]]
in
  Sol
Power Query solution 5 for Evaluate Concatenated Math Rows, proposed by Brian Julius:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  ColList = Table.ColumnNames(Source), 
  TextList = List.Repeat({Text.Type}, List.Count(ColList)), 
  ReTypeAll = Table.TransformColumnTypes(Source, List.Zip({ColList, TextList})), 
  Merge = Table.CombineColumns(
    ReTypeAll, 
    Table.ColumnNames(Source), 
    Combiner.CombineTextByDelimiter(""), 
    "Exp"
  ), 
  Evaluate = Table.RemoveColumns(
    Table.AddColumn(Merge, "Answer", each Expression.Evaluate([Exp])), 
    "Exp"
  )
in
  Evaluate
Power Query solution 6 for Evaluate Concatenated Math Rows, proposed by Abdallah Ally:
let
  a = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  b = Table.AddColumn(
    a, 
    "Results", 
    each Text.Combine(List.Transform(Record.ToList(_), Text.From), "")
  ), 
  c = List.Transform(b[Results], Expression.Evaluate)
in
  c
Power Query solution 7 for Evaluate Concatenated Math Rows, proposed by Ramiro Ayala Chávez:
let
  S = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  a = Table.TransformColumnTypes(
    S, 
    {
      {"N1", type text}, 
      {"N2", type text}, 
      {"N3", type text}, 
      {"N4", type text}, 
      {"N5", type text}, 
      {"N6", type text}, 
      {"N7", type text}
    }
  ), 
  Sol = Table.AddColumn(
    a, 
    "Answer Expected", 
    each Expression.Evaluate([N1] & [N2] & [N3] & [N4] & [N5] & [N6] & [N7])
  )
in
  Sol
Power Query solution 8 for Evaluate Concatenated Math Rows, proposed by Venkata Rajesh:
let
  Source = Data, 
  Output = Table.AddColumn(
    Source, 
    "Expected", 
    each [
      x = Record.ToList(_), 
      y = Text.Combine(List.Transform(x, Text.From), ""), 
      z = Expression.Evaluate(y)
    ][z]
  )[[Expected]]
in
  Output
Power Query solution 9 for Evaluate Concatenated Math Rows, proposed by Kalyan Kumar Reddy Kethireddy:
let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "bU9BDoAgDPsLR4XIFAXfYvj/N2w3RmLiocvadWU8T5AjxHACBVgBIdmzqj3CcFMkP7xRaQNuc+y+pmFkieRikb8QLWWESFOLrxWfVVtHqWq4fKBPreOl01QayozmYGEDNDtYrxD/2myS5Uek09HmUUD+oPcX", 
          BinaryEncoding.Base64
        ), 
        Compression.Deflate
      )
    ), 
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [N1 = _t, N2 = _t, N3 = _t, N4 = _t, N5 = _t, N6 = _t, N7 = _t]
  ), 
  ExtractColumnNames = Table.ColumnNames(Source), 
  CombineAllColumns = Table.CombineColumns(
    Source, 
    ExtractColumnNames, 
    Combiner.CombineTextByDelimiter("", QuoteStyle.None), 
    "Answer Expected"
  ), 
  Evaluate = Table.TransformColumns(
    CombineAllColumns, 
    {"Answer Expected", each Expression.Evaluate(_)}
  )
in
  Evaluate

Solving the challenge of Evaluate Concatenated Math Rows with Excel

Excel solution 1 for Evaluate Concatenated Math Rows, proposed by Bo Rydobon 🇹🇭:
=LAMBDA(
    x,
    EVALUATE(
        CONCAT(
            x
        )
    )
)

Then 
=BYROW(
    A2:G10,
    Eval
)
Excel solution 2 for Evaluate Concatenated Math Rows, proposed by Bo Rydobon 🇹🇭:
=BYROW(
    A2:G10,
    LAMBDA(
        a,
        LET(
            n,
            TEXTSPLIT(
                CONCAT(
                    a
                ),
                {"+",
                "-",
                "*",
                "/"}
            ),
            m,
            IF(
                OR(
                    a={"+";"*"}
                ),
                1,
                {1,
                -1}
            ),
            IF(
                OR(
                    a={"+";"-"}
                ),
                SUM(
                    n*m
                ),
                PRODUCT(
                    n^m
                )
            )
        )
    )
)

=BYROW(
    A2:G10,
    LAMBDA(
        a,
        LET(
            n,
            REGEXEXTRACT(
                CONCAT(
                    a
                ),
                "d+",
                1
            ),
            m,
            IF(
                OR(
                    a={"+";"*"}
                ),
                1,
                {1;-1}
            ),
            IF(
                OR(
                    a={"+";"-"}
                ),
                SUM(
                    n*m
                ),
                PRODUCT(
                    n^m
                )
            )
        )
    )
)
Excel solution 3 for Evaluate Concatenated Math Rows, proposed by Rick Rothstein:
=BYROW(
    A2:G10,
    LAMBDA(
        r,
        LET(
            a,
            {"+",
            "-",
            "*",
            "/"},
            t,
            TEXTSPLIT(
                CONCAT(
                    r
                ),
                ,
                a
            ),
            f,
            TAKE(
                t,
                1
            ),
            s,
            TAKE(
                t,
                -1
            ),
            CHOOSE(
                TOCOL(
                    XMATCH(
                        r,
                        a
                    ),
                    3
                ),
                f+s,
                f-s,
                f*s,
                f/s
            )
        )
    )
)
Excel solution 4 for Evaluate Concatenated Math Rows, proposed by John V.:
=LAMBDA(
    x;EVALUATE(
        CONCAT(
            x
        )
    )
)
And then,
     use this formula:
=BYROW(
    A2:G10;e
)

✅=BYROW(
    A2:G10,
    LAMBDA(
        r,
        LET(
            i,
            CONCAT(
                r
            ),
            s,
            {"-";"*";"/";"+"},
            a,
            TEXTBEFORE(
                i,
                s
            ),
            b,
            TEXTAFTER(
                i,
                s
            ),
            CHOOSE(
                MATCH(
                    FILTER(
                        r,
                        r>""
                    ),
                    s
                ),
                a-b,
                a*b,
                a/b,
                a+b
            )
        )
    )
)
Excel solution 5 for Evaluate Concatenated Math Rows, proposed by محمد حلمي:
=BYROW(
    A2:G10,
    LAMBDA(
        a,
        LET(
            i,
            XMATCH(
                1,
                IFERROR(
                    -a,
                    1
                )
            ),
            
            v,
            CONCAT(
                TAKE(
                    a,
                    ,
                    i-1
                )
            ),
            c,
            CONCAT(
                DROP(
                    a,
                    ,
                    i
                )
            ),
            
            SWITCH(
                INDEX(
                    a,
                    i
                ),
                "+",
                v+c,
                "/",
                v/c,
                "*",
                v*c,
                v-c
            )
        )
    )
)
Excel solution 6 for Evaluate Concatenated Math Rows, proposed by محمد حلمي:
=BYROW(
    A2:G10,
    LAMBDA(
        a,
        LET(
            e,
            CODE(
                a
            )-41,
            i,
            XMATCH(
                1,
                e,
                1
            ),
            v,
            CONCAT(
                
                TAKE(
                    a,
                    ,
                    i-1
                )
            ),
            c,
            CONCAT(
                DROP(
                    a,
                    ,
                    i
                )
            ),
            CHOOSE(
                INDEX(
                    e,
                    i
                ),
                v*c,
                v+c,
                ,
                v-c,
                ,
                v/c
            )
        )
    )
)
Excel solution 7 for Evaluate Concatenated Math Rows, proposed by Kris Jaganah:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        LET(
            a,
            CONCAT(
                x
            ),
            b,
            REGEXEXTRACT(
                a,
                "[*/+-]"
            ),
            c,
            --TEXTSPLIT(
                a,
                ,
                b
            ),
            d,
            TAKE(
                c,
                1
            ),
            e,
            DROP(
                c,
                1
            ),
            SWITCH(
                b,
                "+",
                d+e,
                "/",
                d/e,
                "-",
                d-e,
                "*",
                d*e
            )
        )
    )
)
Excel solution 8 for Evaluate Concatenated Math Rows, proposed by Julian Poeltl:
=BYROW(
    A2:G10,
    LAMBDA(
        A,
        LET(
            C,
            CONCAT(
                A
            ),
            P,
            TEXTSPLIT(
                C,
                ,
                "+"
            ),
            M,
            TEXTSPLIT(
                C,
                ,
                "-"
            ),
            Mu,
            TEXTSPLIT(
                C,
                ,
                "*"
            ),
            D,
            TEXTSPLIT(
                C,
                ,
                "/"
            ),
            IFERROR(
                INDEX(
                    P,
                    1
                )+INDEX(
                    P,
                    2
                ),
                IFERROR(
                    INDEX(
                        M,
                        1
                    )-INDEX(
                        M,
                        2
                    ),
                    IFERROR(
                        INDEX(
                            Mu,
                            1
                        )*INDEX(
                            Mu,
                            2
                        ),
                        INDEX(
                            D,
                            1
                        )/INDEX(
                            D,
                            2
                        )
                    )
                )
            )
        )
    )
)
Excel solution 9 for Evaluate Concatenated Math Rows, proposed by Julian Poeltl:
=BYROW(
    A2:G10,
    LAMBDA(
        A,
        LET(
            C,
            CONCAT(
                A
            ),
            SP,
            TEXTSPLIT(
                C,
                {"-",
                "+",
                "*",
                "/"}
            ),
            A,
            INDEX(
                SP,
                1
            ),
            B,
            INDEX(
                SP,
                2
            ),
            SWITCH(
                CONCAT(
                    TEXTSPLIT(
                        C,
                        SEQUENCE(
                            10,
                            ,
                            0
                        )
                    )
                ),
                "-",
                A-B,
                "+",
                A+B,
                "*",
                A*B,
                "/",
                A/B
            )
        )
    )
)
Excel solution 10 for Evaluate Concatenated Math Rows, proposed by Timothée BLIOT:
=LET(
    T,
     BYROW(
         A2:G10,
          LAMBDA(
              x,
               CONCAT(
                   x
               )
          )
     ),
    V,
     {"+",
    "-",
    "*",
    "/"},
     MAP(
         T,
          LAMBDA(
              x,
               LET(
                   W,
                    FILTER(
                        V,
                         ISNUMBER(
                             FIND(
                                 V,
                                  x
                             )
                         )
                    ),
                    N,
                    --TEXTSPLIT(
                        x,
                        ,
                        V
                    ),
                   
                   A,
                    INDEX(
                        N,
                        1
                    ),
                    B,
  &                  INDEX(
                        N,
                        2
                    ),
                    
                   SWITCH(
                       W,
                        "+",
                        A+B,
                        "-",
                        A-B,
                        "*",
                        A*B,
                        "/",
                        A/B
                   )
               )
          )
     )
)
Excel solution 11 for Evaluate Concatenated Math Rows, proposed by Hussein SATOUR:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        LET(
            v,
            REGEXEXTRACT(
                CONCAT(
                    x
                ),
                "(d+)|([*/+/-//])|(d+)",
                1
            ),
            a,
            INDEX(
                v,
                1
            ),
            b,
            INDEX(
                v,
                3
            ),
            SWITCH(
                INDEX(
                    v,
                    2
                ),
                "+",
                a+b,
                "/",
                a/b,
                "*",
                a*b,
                a-b
            )
        )
    )
)
Excel solution 12 for Evaluate Concatenated Math Rows, proposed by Oscar Mendez Roca Farell:
=BYROW(A2:G10,
     LAMBDA(r,
     LET(c,
     CONCAT(
         r
     ),
     m,
     {1,
    -1},
     w,
     "-+/*",
     f,
     TOCOL(
         FIND(
             r,
              w
         ),
         2 
     ),
     n,
     TEXTSPLIT(
         c,
          MID(
              w,
               f,
               1
          )
     ),
     IF(f<3,
     SUM(n*m^(f-2)),
     PRODUCT(n^(m^(4-f)))))))
Excel solution 13 for Evaluate Concatenated Math Rows, proposed by Sunny Baggu:
=LET(
    
     s,
     BYROW(
         A2:G10,
          LAMBDA(
              x,
               CONCAT(
                   x
               )
          )
     ),
    
     MAP(
         
          s,
         
          LAMBDA(
              t,
              
               LET(
                   
                    ts,
                    TEXTSPLIT(
                        t,
                         ,
                         {"+"; "-"; "*"; "/"}
                    ),
                   
                    a,
                    TAKE(
                        ts,
                         1
                    ),
                   
                    b,
                    TAKE(
                        ts,
                         -1
                    ),
                   
                    c,
                    FILTER(
                        SEQUENCE(
                            4
                        ),
                         ISNUMBER(
                             FIND(
                                 {"+"; "-"; "*"; "/"},
                                  t
                             )
                         )
                    ),
                   
                    IFS(
                        c = 1,
                         a + b,
                         c = 2,
                         a - b,
                         c = 3,
                         a * b,
                         1,
                         a / b
                    )
                    
               )
               
          )
          
     )
    
)
Excel solution 14 for Evaluate Concatenated Math Rows, proposed by Abdallah Ally:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        LET(
            a,
            CONCAT(
                x
            ),
            b,
            {"+",
            "-",
            "*",
            "/"},
            c,
             TEXTBEFORE(
                 a,
                 b
             ),
            d,
            TEXTAFTER(
                 a,
                 b
             ),
            f,
            LAMBDA(
                x,
                y,
                NOT(
                    ISERROR(
                        FIND(
                            x,
                            y
                        )
                    )
                )
            ),
            IFS(
                f(
                    "+",
                    a
                ),
                c+d,
                f(
                    "-",
                    a
                ),
                c-d,
                f(
                    "*",
                    a
                ),
                c*d,
                f(
                    "/",
                    a
                ),
                c/d
            )
        )
    )
)
Excel solution 15 for Evaluate Concatenated Math Rows, proposed by 🇵🇪 Ned Navarrete C.:
=BYROW(
    A2:G10,
    LAMBDA(
        r,
        LET(
            e,
            LAMBDA(
                i,
                x,
                y,
                CHOOSE(
                    XMATCH(
                        i,
                        {"+",
                        "-",
                        "*",
                        "/"}
                    ),
                    x+y,
                    x-y,
                    x*y,
                    x/y
                )
            ),
            t,
            CONCAT(
                r
            ),
            o,
            FILTER(
                r,
                r>""
            ),
            e(
                o,
                TEXTBEFORE(
                    t,
                    o
                ),
                TEXTAFTER(
                    t,
                    o
                )
            )
        )
    )
)
Excel solution 16 for Evaluate Concatenated Math Rows, proposed by Asheesh Pahwa:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        LET(
            mo,
            {"+",
            "-",
            "*",
            "/"},
            c,
            CONCAT(
                x
            ),
            
            t,
            TEXTSPLIT(
                c,
                mo
            ),
            f,
            --TAKE(
                t,
                ,
                1
            ),
            l,
            --TAKE(
                t,
                ,
                -1
            ),
            xm,
            XMATCH(
                x,
                mo
            ),
            
            tc,
            TOCOL(
                xm,
                3
            ),
            ch,
            CHOOSE(
                tc,
                f+l,
                f-l,
                f*l,
                f/l
            ),
            ch
        )
    )
)
Excel solution 17 for Evaluate Concatenated Math Rows, proposed by Meganathan Elumalai:
=LET(
    a,
    {"+",
    "-",
    "/",
    "*"},
    Rng,
    A2:G2,
    Opr,
    MATCH(
        FALSE,
        ISNUMBER(
            Rng
        ),
        0
    ),
    fset,
    CONCAT(
        INDEX(
            Rng,
            ROW(
                INDIRECT(
                    "1:"&Opr-1
                )
            )
        )
    ),
    sset,
    CONCAT(
        INDEX(
            Rng,
            ROW(
                INDIRECT(
                    Opr+1&":"&COLUMNS(
            Rng
        )
                )
            )
        )
    ),
    CHOOSE(
        MATCH(
            "~"&INDEX(
                Rng,
                Opr
            ),
            a,
            0
        ),
        fset+sset,
        fset-sset,
        fset/sset,
        fset*sset
    )
)
Excel solution 18 for Evaluate Concatenated Math Rows, proposed by Bilal Mahmoud kh.:
LET(
    a,
    BYROW(
        A2:G10,
        LAMBDA(
            x,
            TEXTSPLIT(
                CONCAT(
                    x
                ),
                CHAR(
                    SEQUENCE(
                        10,
                        ,
                        48,
                        1
                    )
                ),
                ,
                TRUE()
            )
        )
    ),
    b,
    --BYROW(
        A2:G10,
        LAMBDA(
            x,
            TAKE(
                TEXTSPLIT(
                    CONCAT(
                    x
                ),
                    {"+",
                    "-",
                    "*",
                    "/"},
                    ,
                    TRUE()
                ),
                ,
                1
            )
        )
    ),
    c,
    --BYROW(
        A2:G10,
        LAMBDA(
            x,
            DROP(
                TEXTSPLIT(
                    CONCAT(
                    x
                ),
                    {"+",
                    "-",
                    "*",
                    "/"},
                    ,
                    TRUE()
                ),
                ,
                1
            )
        )
    ),
    res,
    SWITCH(
        a,
        "+",
        b+c,
        "-",
        b-c,
        "*",
        b*c,
        "/",
        b/c
    ),
    res
)
Excel solution 19 for Evaluate Concatenated Math Rows, proposed by Milan Shrimali:
=BYROW(
    A1:G10,
     
    LAMBDA(
        y,
        
        LET(
            opt,
            
            BYROW(
                y,
                
                LAMBDA(
                    x,
                    
                    UNIQUE(
                        IF(
                            ISTEXT(
                                x
                            ),
                            x,
                            ""
                        ),
                        1,
                        1
                    )
                )
            ),
            join,
            TEXTJOIN(
                "",
                ,
                y
            ),
            BF,
            TEXTBEFORE(
                join,
                opt
            ),
            
            AF,
            TEXTAFTER(
                join,
                opt
            ),
             
            IFS(
                opt="+",
                BF+AF,
                opt="/",
                BF/AF,
                opt="-",
                BF-AF,
                opt="*",
                BF*AF
            )
        )
    )
)
Excel solution 20 for Evaluate Concatenated Math Rows, proposed by Edwin Tisnado:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        LET(
            b,
            {"+",
            "-",
            "*",
            "/"},
            c,
            {1,
            -1},
            t,
            CONCAT(
                x
            ),
            n,
            --TEXTSPLIT(
                t,
                b
            ),
            i,
            XMATCH(
                1,
                FIND(
                    b,
                    t
                ),
                1
            ),
            IFS(
                i=1,
                SUM(
                    n
                ),
                i=2,
                SUM(
                    n*c
                ),
                i=3,
                PRODUCT(
                    n
                ),
                i=4,
                PRODUCT(
                    n^c
                )
            )
        )
    )
)
Excel solution 21 for Evaluate Concatenated Math Rows, proposed by Anup Kumar:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        LET(
            
            lst,
             {"+",
            "-",
            "/",
            "*"},
            
            str,
            TEXTJOIN(
                "",
                1,
                x
            ),
            
            a,
             --TEXTBEFORE(
                 str,
                 lst
             ),
            
            b,
             --TEXTAFTER(
                 str,
                 lst
             ),
            
            opr,
             XMATCH(
                 MID(
                     str,
                     LEN(
                         a
                     )+1,
                     1
                 ),
                 lst
             ),
            
            SWITCH(
                opr,
                1,
                a+b,
                2,
                a-b,
                3,
                a/b,
                4,
                a*b
            )
            
        )
    )
)
Excel solution 22 for Evaluate Concatenated Math Rows, proposed by Diarmuid Early:
=LAMBDA(
    x,
    EVALUATE(
        x
    )
)

Then this solves it:
=BYROW(
    A2:G10,
    LAMBDA(
        rw,
        evalFunc(
            CONCAT(
                rw
            )
        )
    )
)

EVALUATE turns a string into a formula (a bit like INDIRECT converts a string into a range reference)
Excel solution 23 for Evaluate Concatenated Math Rows, proposed by Burhan Cesur:
=BYROW(
    A2:G10,
    LAMBDA(
        x,
        WEBSERVICE(
            "http://api.mathjs.org/v4/?expr="&ENCODEURL(
                CONCAT(
                    x
                )
            )
        )
    )
)
Excel solution 24 for Evaluate Concatenated Math Rows, proposed by Burhan Cesur:
=LET(
    s,
    {"+",
    "-",
    "*",
    "/"},
    a,
    BYROW(
        A2:G10,
        LAMBDA(
            x,
            CONCAT(
                x
            )
        )
    ),
    b,
    --TEXTBEFORE(
        a,
        s
    ),
    c,
    --TEXTAFTER(
        a,
        s
    ),
    f,
    LAMBDA(
        x,
        ISNUMBER(
            SEARCH(
                x,
                a
            )
        )
    ),
    IFS(
        f(
            "+"
        ),
        b+c,
        f(
            "-"
        ),
        b-c,
        f(
            "/"
        ),
        b/c,
        f(
            "*"
        ),
        b*c
    )
)
Excel solution 25 for Evaluate Concatenated Math Rows, proposed by Bevon Clarke:
=BYROW(
    A2:G10;
    LAMBDA(
        x;
        LET(
            cha;
            {"+";
            "-";
            "*";
            "/"};
            nbf;
            TAKE(
                VALUE(
                    TEXTSPLIT(
                        CONCAT(
                            x
                        );
                        cha
                    )
                );
                ;
                1
            );
            nba;
            TAKE(
                VALUE(
                    TEXTSPLIT(
                        CONCAT(
                            x
                        );
                        cha
                    )
                );
                ;
                -1
            );
            mo;
            CONCAT(
                IFNA(
                    XLOOKUP(
                        cha;
                        x;
                        x
                    );
                    ""
                )
            );
            IFS(
                mo="+";
                nbf+nba;
                mo="-";
                nbf-nba;
                mo="*";
                nbf*nba;
                mo="/";
                nbf/nba
            )
        )
    )
)
Excel solution 26 for Evaluate Concatenated Math Rows, proposed by Caroline Blake:
=BYROW(
    A2:G10,
    LAMBDA(
        a,
        LET(
            b,
            IF(
                ISNUMBER(
                    a
                ),
                a,
                ":"
            ),
            c,
            FILTER(
                a,
                b=":"
            ),
            _n,
            LAMBDA(
                x,
                CHOOSEROWS(
                    VALUE(
                        TEXTSPLIT(
                            CONCAT(
                                b
                            ),
                            ,
                            ":"
                        )
                    ),
                    x
                )
            ),
            
            IF(
                c="+",
                _n(
                    1
                )+_n(
                    2
                ),
                IF(
                    c="-",
                    _n(
                    1
                )-_n(
                    2
                ),
            &        IF(
                        c="/",
                        _n(
                    1
                )/_n(
                    2
                ),
                        _n(
                    1
                )*_n(
                    2
                )
                    )
                )
            )
        )
    )
)

Solving the challenge of Evaluate Concatenated Math Rows with Python

Python solution 1 for Evaluate Concatenated Math Rows, proposed by Konrad Gryczan, PhD:
import pandas as pd
input = pd.read_excel("472 Operator in a grid.xlsx", usecols="A:G", nrows = 9)
test = pd.read_excel("472 Operator in a grid.xlsx", usecols="I", nrows = 9)
pattern = r'^(d+)(D+)(d+)$'
def evaluate_expression(n1, op, n2):
 n1 = float(n1)
 n2 = float(n2)
 if op == "+":
 return n1 + n2
 elif op == "-":
 return n1 - n2
 elif op == "*":
 return n1 * n2
 elif op == "/":
 return n1 / n2
input = input.astype(str)
result = input.apply(lambda row: "".join(row), axis=1)
result = result.str.extract(pattern)
result.columns = ["n1", "op", "n2"]
result["Answer Expected"] = result.apply(lambda row: evaluate_expression(row["n1"], row["op"], row["n2"]), axis=1)
print(result["Answer Expected"].equals(test["Answer Expected"])) # True
                    
                  

Solving the challenge of Evaluate Concatenated Math Rows with Python in Excel

Python in Excel solution 1 for Evaluate Concatenated Math Rows, proposed by Abdallah Ally:
import pandas as pd
pd.set_option('display.float_format', '{:.4f}'.format)
file_path = 'Excel_Challenge_472 - Operator in a grid.xlsx'
df = pd.read_excel(file_path, usecols='A:I').dropna(axis=1)
# Perform data wrangling
df['My Answer'] = df.apply(lambda x: eval(''.join(x[:-1].map(str))), axis=1)
df['Check'] = df['Answer Expected'] == df['My Answer']
df
                    
                  

Solving the challenge of Evaluate Concatenated Math Rows with R

R solution 1 for Evaluate Concatenated Math Rows, proposed by Konrad Gryczan, PhD:
I found some time :D
library(tidyverse)
library(readxl)
library(rlang)
input = read_excel("Excel/472 Operator in a grid.xlsx", range = "A1:G10")
test = read_excel("Excel/472 Operator in a grid.xlsx", range = "I1:I10")
result2 = input %>%
 unite("result", 1:7, sep = "") %>%
 mutate(`Answer Expected` = map_dbl(result, ~ eval(parse_expr(.x))))
identical(result2$`Answer Expected`, test$`Answer Expected`)
#> [1] TRUE
                    
                  
R solution 2 for Evaluate Concatenated Math Rows, proposed by Konrad Gryczan, PhD:
library(tidyverse)
library(readxl)
library(rebus)
input = read_excel("Excel/472 Operator in a grid.xlsx", range = "A1:G10")
test = read_excel("Excel/472 Operator in a grid.xlsx", range = "I1:I10")
pattern = START %R% capture(one_or_more(DGT)) %R% capture(NOT_DGT) %R% capture(one_or_more(DGT)) %R% END
evaluate_expression = function(n1, op, n2) {
 n1 = as.numeric(n1)
 n2 = as.numeric(n2)
 switch(op,
 "+" = n1 + n2,
 "-" = n1 - n2,
 "*" = n1 * n2,
 "/" = n1 / n2)
}
result = input %>%
 unite("result", 1:7, sep = "") %>%
 extract(col = "result", into = c("n1", "op", "n2"), pattern) %>%
 mutate(`Answer Expected` = pmap_dbl(list(n1, op, n2), evaluate_expression))
identical(result$`Answer Expected`, test$`Answer Expected`)
#> [1] TRUE
                    
                  
R solution 3 for Evaluate Concatenated Math Rows, proposed by Anil Kumar Goyal:
df <- read_excel("Excel/Excel_Challenge_472 - Operator in a grid.xlsx", range = cell_cols("A:G"))
df %>% 
 unite("answer", everything(), sep = "") %>% 
 mutate(answer = map_dbl(answer, ~eval(expr = parse(text = .))),
 answer = sprintf(answer, fmt = "%.2f"))
                    
                  

&

Leave a Reply