LinkedIn Post by:
محمد حلمي
=FILTER(A2:A10,MAP(A2:A10,LAMBDA(a,LET(v,SEQUENCE(50),r,MID(a,v,1),ROWS(UNIQUE(MMULT(--(r=TOROW(r)),
v^0)))=2))))
=FILTER(A2:A10,MAP(A2:A10,LAMBDA(a,LET(v,SEQUENCE(50),r,MID(a,v,1),ROWS(UNIQUE(MMULT(--(r=TOROW(r)),
v^0)))=2))))
=LET(l,A2:A10,FILTER(l,MAP(l,LAMBDA(w,LET(m,MID(w,SEQUENCE(LEN(w)),1),ROWS(UNIQUE(MAP(m,LAMBDA(x,SUM(--(m=x)))))))))=1))
let
Source = Excel.CurrentWorkbook(){[Name=“Table1”]}[Content],
ToList = Table.ExpandListColumn( Table.AddColumn(Source, “Letters”, each Text.ToList( [Words] )), “Letters”),
Group1 = Table.Distinct( Table.RemoveColumns( Table.Group(ToList, {“Words”, “Letters”}, {{“Count”, each Table.RowCount(), Int64.Type}}), “Letters”)),
Group2 = Table.Group(Group1, {“Words”}, {{“Count”, each Table.RowCount(), Int64.Type}}),
FilterNClean = Table.RenameColumns( Table.RemoveColumns( Table.SelectRows(Group2, each ([Count] = 1)), “Count”), {“Words”, “Expected Answer”})
in
FilterNClean
=FILTER(A2:A10,MAP(A2:A10,LAMBDA(a,LET(v,SEQUENCE(50),r,MID(a,v,1),ROWS(UNIQUE(MMULT(--(r=TOROW(r)), v^0)))=2))))
=FILTER(A2:A10,MAP(A2:A10,LAMBDA(a,ROWS(UNIQUE(LEN(SUBSTITUTE(a,MID(a,SEQUENCE(LEN(a)),1),))))=1)))
Power Query
let
Source = Excel.CurrentWorkbook(){[ Name = "data" ]}[Content],
Return = Table.SelectRows (
Source,
each [
S = Text.ToList ( [Words] ),
C = List.Transform ( S, ( f ) => List.Count ( List.Select ( S, ( x ) => f = x ) ) ),
R = List.Count ( List.Distinct ( C ) ) = 1
][R]
)
in
Return
Isogram.xlsx (23.0 KB)