Forum Discussion

djclements's avatar
djclements
Silver Contributor
Aug 12, 2026

Braille Translator Challenge

Using the Braille Alphabet lookup table provided:

  • Part 1 - convert the given phrase from Braille to words.
  • Part 2 - convert the given phrase from words to Braille.

✅ Solutions should be in the form of a single-cell formula.

✅ Generalized Lambda functions are welcome, provided the function definitions are included with your solution.

✅ Keep in mind, the "best" solution is not necessarily the shortest...

  • Strive for conciseness, if you wish; just don't let your solutions be ordinary. 😉

Good luck and have fun!

2 Replies

  • IlirU's avatar
    IlirU
    Iron Contributor

    Hi djclements​,

    (I have not used the LAMBDA function in my formula)

    I applied the first formula to cell AF10.

    =LET(
         data, B3:Q18,
       phrase, T5:BS7,
               CONCAT(XLOOKUP(BYCOL(WRAPCOLS(BYCOL(phrase, ARRAYTOTEXT), 2), ARRAYTOTEXT),
               HSTACK(BYCOL(WRAPCOLS(BYCOL(CHOOSEROWS(data, {2,3,4}), ARRAYTOTEXT), 2), ARRAYTOTEXT),
                      BYCOL(WRAPCOLS(BYCOL(CHOOSEROWS(data, {6,7,8}), ARRAYTOTEXT), 2), ARRAYTOTEXT),
                      BYCOL(WRAPCOLS(BYCOL(CHOOSEROWS(data, {10,11,12}), ARRAYTOTEXT), 2), ARRAYTOTEXT),
                      BYCOL(WRAPCOLS(BYCOL(CHOOSEROWS(data, {14,15,16}), ARRAYTOTEXT), 2), ARRAYTOTEXT)),
               HSTACK(
                      TOROW(CHOOSEROWS(data, 1), 1),
                      TOROW(CHOOSEROWS(data, 5), 1),
                      TOROW(CHOOSEROWS(data, 9), 1),
                      TOROW(CHOOSEROWS(data, 13), 1)
    ))))

    The second formula is the same as the first formula, but instead of T5:BS7, T19:BS21 should be inserted in the formula.

    Try it and let me know.

    IlirU

  • askan's avatar
    askan
    Occasional Reader
    Part1: 
    
    =LET(b,HSTACK(B4:Q6,B8:Q10,B12:Q14,B16:Q18),a,IF(b="",0,b),c,HSTACK(CHAR(SEQUENCE(,26,97)),TOROW(F15:Q15,1)),l,LAMBDA(i,DROP(REDUCE(0,SEQUENCE(COLUMNS(i)/2,,,2),LAMBDA(x,y,HSTACK(x,CONCAT(CHOOSECOLS(i,y,y+1))))),,1)),CONCAT(XLOOKUP(l(IF(T5:BS7="",0,T5:BS7)),l(a),c)))
    
    Part2: 
    
    =LET(b,HSTACK(B4:Q6,B8:Q10,B12:Q14,B16:Q18),a,IF(b="",0,b),c,HSTACK(CHAR(SEQUENCE(,26,97)),TOROW(F15:Q15,1)),l,LAMBDA(i,DROP(REDUCE(0,SEQUENCE(COLUMNS(i)/2,,,2),LAMBDA(x,y,HSTACK(x,CONCAT(CHOOSECOLS(i,y,y+1))))),,1)),d,REGEXEXTRACT(T16,".",1),e,XLOOKUP(d,c,l(a)),r,DROP(REDUCE(0,e,LAMBDA(x,y,HSTACK(x,WRAPROWS(REGEXEXTRACT(y,".",1),2)))),,1),SUBSTITUTE(r,0,))