Home » List Tetradic Numbers

List Tetradic Numbers

List Tetradic numbers from column A. A tetradic number is a number that remains unchanged when reversed or flipped up-down. Since the only numbers that remain unchanged which turned up-side-down are 0, 1, and 8, a Tetradic number is precisely a palindromic number containing only 0, 1, and 8 as digits Examples – 11, 101, 181, 18181, 1008001

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

Solving the challenge of List Tetradic Numbers with Power Query

Power Query solution 1 for List Tetradic Numbers, proposed by Zoran Milokanović:
let
  Source = Excel.CurrentWorkbook(){[Name = "Input"]}[Content], 
  Solution = List.Select(
    Source[Numbers], 
    each 
      let
        l = Text.ToList(Text.From(_))
      in
        l
          = List.Reverse(l)
            and not List.ContainsAny(l, List.Difference({"0" .. "9"}, {"0", "1", "8"}))
  )
in
  Solution
Power Query solution 2 for List Tetradic Numbers, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Origen = Excel.CurrentWorkbook(){[Name = "Tabla1"]}[Content], 
  Sel = List.Select(
    List.Transform(Origen[Numbers], each Text.ToList(Text.From(_))), 
    each _ = List.Reverse(_) and not List.ContainsAny(_, {"2" .. "7"} & {"9"})
  ), 
  Sol = List.Transform(Sel, each Number.From(Text.Combine(_, "")))
in
  Sol
Power Query solution 3 for List Tetradic Numbers, proposed by Luan Rodrigues:
let
  Fonte = Tabela1, 
  res = Table.SelectRows(
    Fonte, 
    each (Text.From([Numbers]) = Text.Reverse(Text.From([Numbers])) = true)
      and List.ContainsAll({"0", "1", "8"}, Text.ToList(Text.From([Numbers])))
      = true
  )
in
  res
Power Query solution 4 for List Tetradic Numbers, proposed by Alexis Olson:
Table.SelectRows(
  Source, 
  each [Numbers] = Number.From(Text.Reverse(Text.Select(Number.ToText([Numbers]), {"0", "1", "8"})))
)
Power Query solution 5 for List Tetradic Numbers, proposed by Brian Julius:
let
  Source = Table.TransformColumnTypes(
    Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
    {"Numbers", Text.Type}
  ), 
  Only018 = Table.AddColumn(
    Source, 
    "Answer", 
    each [
      a = Text.ToList([Numbers]), 
      b = List.Select(a, each not List.ContainsAny(a, {"2", "3", "4", "5", "6", "7", "9"})), 
      c = Text.Combine(b, "")
    ][c]
  ), 
  Reverse = Table.AddColumn(Only018, "Custom", each Text.Reverse([Answer])), 
  Clean = Table.SelectColumns(Table.SelectRows(Reverse, each [Numbers] = [Custom]), "Answer")
in
  Clean
Power Query solution 6 for List Tetradic Numbers, proposed by Rafael González B.:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  ChangeToText = Table.TransformColumnTypes(Source, {{"Numbers", type text}}), 
  Matching = Table.AddColumn(
    ChangeToText, 
    "Match", 
    each List.ContainsAll(Text.ToList([Numbers]), {"0", "1", "8"})
  ), 
  Result = Table.SelectRows(Matching, each ([Match] = true))[[Numbers]]
in
  Result
Power Query solution 7 for List Tetradic Numbers, proposed by Guillermo Arroyo:
let
  Origen = Excel.CurrentWorkbook(){[Name = "Tabla1"]}[Content], 
  a = Table.SelectRows(
    Origen, 
    each 
      let
        b = [Numbers] = Number.FromText(Text.Reverse(Text.From([Numbers]))), 
        c = Text.Remove(Text.From([Numbers]), {"0", "1", "8"}) = ""
      in
        b and c
  )
in
  a

Solving the challenge of List Tetradic Numbers with Excel

Excel solution 1 for List Tetradic Numbers, proposed by Bo Rydobon 🇹🇭:
=LET(a,A2:A8,r,SEQUENCE(15),b,--MID(a&REPT(0,15),TOROW(r),1),FILTER(a,MMULT(b*ISNUMBER(XMATCH(b,{0,1,8}))/10,10^r)=a))
Excel solution 2 for List Tetradic Numbers, proposed by Rick Rothstein:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(a,a=0+CONCAT(MID(a,SEQUENCE(,LEN(a),LEN(a),-1),1))*ISERR(TEXTSPLIT(a,{0,1,8},,1)))))
Excel solution 3 for List Tetradic Numbers, proposed by John V.:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(x,ISERR(TEXTSPLIT(x,{0;1;8},,1))*(--CONCAT(MID(x,16-ROW(1:15),1))=x))))
Excel solution 4 for List Tetradic Numbers, proposed by محمد حلمي:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(a,LET(
e,LEN(a),
r,MID(a,SEQUENCE(e),1),
v,ROWS(r),
(SUM(--(MID(a,e-SEQUENCE(e)+1,1)=r))=v)*
SUM(--(r+0={1,8,0}))=v))))
Excel solution 5 for List Tetradic Numbers, proposed by Kris Jaganah:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(x,IF(AND(--CONCAT(MID(x,SEQUENCE(LEN(x),,LEN(x),-1),1))=x,CONCAT(IFERROR(FIND({"2","3","4","5","6","7","9"},x),""))=""),1,0))))
Excel solution 6 for List Tetradic Numbers, proposed by Kris Jaganah:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(x,(--CONCAT(MID(x,SEQUENCE(LEN(x),,LEN(x),-1),1))=x)*(CONCAT(TEXTSPLIT(x,{"1","8","0"}))=""))))
Excel solution 7 for List Tetradic Numbers, proposed by Julian Poeltl:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(N,LET(L,LEN(N),SP,MID(N,SEQUENCE(LEN(N)),1),SUM((MID(N,1,L/2)=CONCAT(MID(N,SEQUENCE(L/2,,L,-1),1)))*(ISNUMBER(SEARCH(SP,"018"))))=L))))
Excel solution 8 for List Tetradic Numbers, proposed by Timothée BLIOT:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(x,IF(SUM(--(TEXTSPLIT(x,{"1","8","0"})<>""))=0,LET(A,ROUNDDOWN(LEN(x)/2,0),B,LEFT(x,A),C,RIGHT(x,A),--(CONCAT(MID(B,SEQUENCE(LEN(B),,LEN(B),-1),1))=C)),0))))
Excel solution 9 for List Tetradic Numbers, proposed by Hussein SATOUR:
=LET(n, A2:A8, FILTER(n, MAP(n, LAMBDA(x, LET(a, MID(x, SEQUENCE(LEN(x),,LEN(x), -1),1), b, FILTER(a, (a <> "1") * (a <> "8") * (a <> "0"), TRUE), IF(AND(b, COUNT(b)=1), IF(--CONCAT(a)=x, TRUE, FALSE)))))))
Excel solution 10 for List Tetradic Numbers, proposed by Oscar Mendez Roca Farell:
=FILTER(A2:A8, MAP(A2:A8, LAMBDA(r, LET(_s, SEQUENCE(LEN(r)),_n, SUM(IFNA(INDEX({0,1,8}, XMATCH(--MID(r,_s,1), {0,1,8})), )*10^(_s-1)), r=_n))))
Excel solution 11 for List Tetradic Numbers, proposed by Sunny Baggu:
=LET(
 _input, A2:A8,
 _revinput, MAP(
 _input,
 LAMBDA(x, REDUCE("", SEQUENCE(LEN(x)), LAMBDA(a, v, MID(x, v, 1) & a)))
 ),
 _cond1, _input - _revinput = 0,
 _cond2, BYROW(_input, LAMBDA(a, SUM(LEN(TEXTSPLIT(a, {0; 1; 8}))) = 0)),
 FILTER(_input, MAP(_cond1, _cond2, LAMBDA(x, y, AND(x, y))))
)
Excel solution 12 for List Tetradic Numbers, proposed by Sunny Baggu:
=FILTER(
 A2:A8,
 MAP(
 A2:A8,
 LAMBDA(a,
 LET(
 _order, MID(a, SEQUENCE(LEN(a)), 1) + 0,
 _revorder, MID(a, SEQUENCE(LEN(a), , LEN(a), -1), 1),
 _cond1, AND(ISNUMBER(XLOOKUP(_order, {0; 1; 8}, {0; 1; 8}))),
 _cond2, AND(_order - _revorder = 0),
 AND(_cond1, _cond2)
 )
 )
 )
)
Excel solution 13 for List Tetradic Numbers, proposed by Md. Zohurul Islam:
=LET(u,A2:A8,
v,MAP(u,LAMBDA(x,LET(
sq,SEQUENCE(,LEN(x)),
a,MID(x,sq,1),
b,CONCAT(SORTBY(a,sq,-1))+0,
c,UNIQUE(ISERROR(TEXTSPLIT(x,{0,1,8})+0),1),
d,(b=x)*c,
e,COUNT(d),
IF(AND(d=1,e=1),1,0)))),
w,FILTER(u,v),w)
Excel solution 14 for List Tetradic Numbers, proposed by Charles Roldan:
=LAMBDA(x,f, FILTER(x, MAP(x, f)))(A2:A8, LAMBDA(Number, LET(
Length, LEN(Number) + 1, HalfSeq, SEQUENCE(Length/2),
VERIFY, LAMBDA(n, XMATCH(--MID(Number, n, 1), {0,1,8})),
IFNA(AND(VERIFY(HalfSeq)=VERIFY(Length-HalfSeq)),))))
Excel solution 15 for List Tetradic Numbers, proposed by Tolga Demirci, PMP, PMI-ACP, MOS-Expert:
=LET(w;MAP(A2:A8;LAMBDA(q;LET(x;VALUE(MID(q;LEN(q)-SEQUENCE(LEN(q))+1;1));y;VALUE(MID(q;SEQUENCE(LEN(q));1));IF(AND(x=y;COUNT(FILTER(y;((y=1)+(y=0)+(y=8))))=COUNT(x));q;0))));FILTER(w;w<>0))
Excel solution 16 for List Tetradic Numbers, proposed by Guillermo Arroyo:
=FILTER(A2:A8,MAP(A2:A8,LAMBDA(a,LET(f,LAMBDA(b,c,SUBSTITUTE(b,c,"")),AND(f(f(f(a,0),1),8)="",a=--CONCAT(MID(a,SEQUENCE(15,,15,-1),1)))))))

or

=LET(a,A2:A8,FILTER(a,ISERROR(TEXTSPLIT(a,{"0";"1";"8"},,1))*(a=--TEXTSPLIT(CONCAT(MID("|"&a,SEQUENCE(,15,15,-1),1)),,"|",1))))
Excel solution 17 for List Tetradic Numbers, proposed by Daniel Garzia:
=LET(_n,A2:A8,FILTER(_n,MAP(_n,LAMBDA(a,LET(_l,LEN(a),_m,MID(a,SEQUENCE(_l),1),AND(_m=CHOOSEROWS(_m,SEQUENCE(_l,,_l,-1)),ISNUMBER(XMATCH(--_m,{0;1;8}))))))))
Excel solution 18 for List Tetradic Numbers, proposed by Quadri Olayinka Atharu:
=TOCOL(MAP(A2:A8,
LAMBDA(y,
LET(s,--MID(y,SEQUENCE(LEN(y)),1),
tnt,UNIQUE((s=1)+(s=8)+(s=0)),
reverse,--(CONCAT(INDEX(s,SORT(SEQUENCE(LEN(y)),,-1)))),
FILTER(y,(reverse=y)*(tnt=1))))),3)
Excel solution 19 for List Tetradic Numbers, proposed by Rayan S.:
=LET(a,MAP(A2:A8,LAMBDA(n,LET(
 x, MID(n, SEQUENCE(LEN(n)), 1) + 0,
 r, SORTBY(x, SEQUENCE(COUNTA(x), , , -1)),
 e, IFERROR(SUM(FILTER(x, ((x <> 1) * (x <> 0) * (x <> 8)))), 0),
 s, TEXTJOIN("", , IF(AND(r = x, e = 0), x, 0)),
 s+0
))),FILTER(a,a<>0))
Excel solution 20 for List Tetradic Numbers, proposed by Amr Tawfik CMA®,FMVA,Lean Coach:
=FILTER(A2:A8,A2:A8=MAP(A2:A8,
LAMBDA(x,--TEXTJOIN("",,SORTBY(MID(x,SEQUENCE(1,LEN(x),1,1),1)
,SEQUENCE(,COUNTA(MID(x,SEQUENCE(1,LEN(x),-1,1),1)),1,1),-1)))))
Excel solution 21 for List Tetradic Numbers, proposed by Stevenson Yu:
=LET(Y, MAP(A2:A8, LAMBDA(X,
LET(A, X,
C, SUM(IFERROR(FIND({"2";"3";"4";"5";"6";"7";"9"},A),0)),
D, IF((A=CONCAT(MID(A, SEQUENCE(LEN(A),,LEN(A),-1),1)))*(C=0),A,""),D))), FILTER(Y,Y<>""))

Solving the challenge of List Tetradic Numbers with Python in Excel

Python in Excel solution 1 for List Tetradic Numbers, proposed by Alejandro Campos:
numbers = xl("A2:A8").to_numpy().tolist()
df = pd.DataFrame(numbers, columns=["Numbers"])
def is_tetradic(number):
 valid_digits = {'0', '1', '8'}
 str_num = str(number)
 if not all(digit in valid_digits for digit in str_num):
 return False
 return str_num == str_num[::-1]
df_tetradic = df[df["Numbers"].apply(is_tetradic)].set_index('Numbers')
df_tetradic
                    
                  

&&&

Leave a Reply