WR

WR(w,c,[r],[i])
w
word
c
constant arrays (in our example cs for snake lookup, cd for diagonal lookup)
[r]
always omitted, carries the final result
[i]
always omitted, carries nr. iterations, depending of LEN(w)

Set of functions and study for solving the Word Maze Excel Challenge

Xlambda

Well-known Member
Joined
Mar 8, 2021
Messages
832
Office Version
  1. 365
Platform
  1. Windows
WR: Word maze Results challenge. Please do see latest (26-Oct-21) YT video of MrExcel Solving Word Search With Excel (FMWC) - 2439
This is a compact set of functions that can solve all lookup scenarios.
Defined names: ar, sample array ( A1:T15 ) ; rw, nr. rows of sample array (15) (width is fixed to 20) ; cs, constant array values for "snake" lookup {-1,1, 20,-20} ; cd, constant array values for "diagonal" lookup {-21,-19,19,21}

WL(l)=LAMBDA(l,LET(x,IF(ar=l,1),y,IF(ar="?",1),z,IF(x+y,1),v,IF(z,SEQUENCE(rw,20)),SMALL(v,SEQUENCE(COUNT(v)))))
WA(a,c)=LAMBDA(a,c,LET(x,a-c,y,IF(x>0,x),UNIQUE(SMALL(y,SEQUENCE(COUNT(y ))))))
WB(a,b)=LAMBDA(a,b,FILTER(a,IFNA(XMATCH(a,b,,2),0)))

WR(w,c,[r],[i ])=LAMBDA(w,c,[r],[i ],LET(n,IF(i,i,LEN(w)),x,MID(w,n,1),y,MID(w,n-1,1),z,IF(AND(r=0),WA(WL(x),c),WA(r,c)),IF(n=1,r,WR(w,c,WB(z,WL(y )),n-1))))
Last one WR is !! recursive !! Define the names, then the functions and we are good to go. (Gaps in [i ] are to keep the text no to turn italics)
Will come back with the "concept" explanation asap.
Excel Formula:
=LAMBDA(w,c,[r],[i ],LET(n,IF(i,i,LEN(w)),x,MID(w,n,1),y,MID(w,n-1,1),z,
     IF(AND(r=0),WA(WL(x),c),WA(r,c)),IF(n=1,r,WR(w,c,WB(z,WL(y)),n-1))
    )
)
WORD MAZE.xlsx
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAK
1Z1SGPE2THEDIZBANTSNSdefined names
2SP?AKIWK1FHVZG2IEKAXar: A1:T15 (sample array)
3?ITQE?LASIXQJNSX4TJKrw: 15 (width is always 20)
4LENJFXA4TIKNSBX1DJCPcs: {-1,1,20,-20} (constant array for "snake" type lookup
5GDL33DMVLTGK?CU3OQOOcd: {-21,-19,19,21} (constant array for "diagonal" type lookup
6IAIUVGYLU?IEP3WGKBTP
74APAU4CZVFFFAFIPAXTT"snake" lookup"diagonal" lookup
8HN?4GCKS4IDRHNNAJDNS
9EC3XCODBVQOYJERGSKAH=WR("snake",cs)=WR("diagonal",cd)
10EX1Z?PNI3OWCCN2UREGJ382
11EONMEVKABEPFLQNZ?EW318
12KAN?AIBKLG24?N?ZBNQE20=WR("advance",cd)
13SMO4YFBBRE?DNE1ADJM416067
14CFX43TY1ZJNIWUZ3OWHM224
15TYD2YZSUDVVF4OZEKA?S300
16
17=SEQUENCE(rw,20)=WR("difficult",cs)
181234567891011121314151617181920151
192122232425262728293031323334353637383940
204142434445464748495051525354555657585960=WR("winner",cs)
216162636465666768697071727374757677787980115
2281828384858687888990919293949596979899100273
23101102103104105106107108109110111112113114115116117118119120
24121122123124125126127128129130131132133134135136137138139140
25141142143144145146147148149150151152153154155156157158159160Note: I left the results in "sequence numbers" representation on purpose,
26161162163164165166167168169170171172173174175176177178179180to be much easier to visualize the results.
27181182183184185186187188189190191192193194195196197198199200To get them to "range" representation we can use PR(a) (print results)
28201202203204205206207208209210211212213214215216217218219220PR(a)=LAMBDA(a,LET(x,QUOTIENT(a-1,20)+1,y,MOD(a-1,20)+1,ADDRESS(x,y,4)))
29221222223224225226227228229230231232233234235236237238239240
30241242243244245246247248249250251252253254255256257258259260
31261262263264265266267268269270271272273274275276277278279280C1B5
32281282283284285286287288289290291292293294295296297298299300R1
33T1G4
34Important Note: Covered here only snake and diagonal search, for being the more complicated ones.T8
35Anyhow, to cover the rest of them the only thing we have to do is defining new constant arraysD12
36cs (constant snake) {-1,1,20,-20}T15
37cd (constant diagonal) {-21,-19,19,21}
38For example, for horizontal lookup we have to defineK8
39ch {-1,1} and for vertical cv: {-20,20}
40O6
41M14
42
43
WM snake diagonal
Cell Formulas
RangeFormula
W9,W20,W17,A17,AC12,AC9W9=FORMULATEXT(W10)
W10:W15W10=WR("snake",cs)
AC10AC10=WR("diagonal",cd)
AC13AC13=WR("advance",cd)
A18:T32A18=SEQUENCE(rw,20)
W18W18=WR("difficult",cs)
W21:W22W21=WR("winner",cs)
W31:W36W31=PR(W10#)
AC31AC31=PR(AC10)
AC33,W38AC33=PR(AC13)
W40:W41W40=PR(W21#)
Dynamic array formulas.
Named Ranges
NameRefers ToCells
ar='WM snake diagonal'!$A$1:$T$15AC13, AC10, W21, W18, W10
 
Upvote 0
With the new CF formula, everything is ok!
To double check, I've also made D3 "visible". (black "ink")
Attached, screen capture.
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQRST
1Word12345function waiting for "arguments"
2aahedspinnDV list=WORDLE(A2:A8939,"bortchfusgd","ai",14,"illl",3452)
3aaliiaalii1abort abortaalii
4aargh2chile 
5abaca3fusil 
6abaci4algid 
7aback5aalii 
8abaft6no word
9abaka
10abampTactics
11abaseChoose as 1st word a word that has no duplicate letters
12abash1abort
13abateWhen we have a "green", exclude that letter on purpose
14abaya(since we already know where "a" is will use its
15abbasspace for other letter)
16abbes1st argument:
17abbey(…"borta") and chose from results "chile"
18abbot2chile
19abeamstill keep "a" out
20abele2nd argument:
21abets(..."bortache",,,"il",34) and chose from results "fusil"
22abhor3fusil
23abidenow introduce all arguments correctly
24abled3rd argument:
25abler(..."bortchfus","ai",14,"ill",345) => only 4 words possible
26ables
27abmho=WORDLE(A2:A8939,"bortchfus","ai",14,"ill",345)
28abodeaalii
29abohmalgidchose "algid"
30aboilalgin
31abomaalkie
32aboon
33abort4algid
34about4th argument:
35above(..."bortchfusgd","ai",14,"illl",3452)
36abris
37abuse=WORDLE(A2:A8939,"bortchfusgd","ai",14,"illl",3452)
38abutsaalii
39abuzzfinal result!!!
40abyes
My WORDLE
Cell Formulas
RangeFormula
O2,D37,D27O2=FORMULATEXT(O3)
D3D3=IF(D2="n",D3,INDEX(A2:A8939,RANDBETWEEN(1,8938)))
O3O3=WORDLE(A2:A8939,"bortchfusgd","ai",14,"illl",3452)
K3:K8K3=IF(ISNA(XMATCH(TEXTJOIN("",,F3:J3),$A$2:$A$8939)),"no word","")
D28:D31D28=WORDLE(A2:A8939,"bortchfus","ai",14,"ill",345)
D38D38=WORDLE(A2:A8939,"bortchfusgd","ai",14,"illl",3452)
Dynamic array formulas.
Cells with Conditional Formatting
CellConditionCell FormatStop If True
F3:J8Expression=F3=MID($D$3,F$1,1)textNO
F3:J8Expression=LET(x,SEARCH(F3,$D$3),AND(F3<>"",ISNUMBER(x),x<>F$1))textNO
F3:J8Expression=ISERR(SEARCH(F3,$D$3))textNO
Cells with Data Validation
CellAllowCriteria
M3List=$A$2:$A$8939
 

Attachments

  • sc1 WORDLE.png
    sc1 WORDLE.png
    31.9 KB · Views: 9
This will be the last "disclosure" of a real WORDLE game.
Chose to share this one because I have used MrExcel tactics regarding the best word to start with.
Wordle Best Starting Words is AROSE not ADIEU - Episode 2463
On the other hand, based on same brilliant ideas, there is a tone of good material for designing formulas with the new helper functions.
Screen capture with statistic only, can be opened, does not show letters matrix.
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLM
1WordSPOILER ALERT !!!!! This will reveal today's wordle.
2aahed¡¡¡ Scroll down only if you want to see the result !!!
3aaliiUsed MrExcel tactics for 1st word, that is able to eliminate
4aarghlot of words, or, match more letters.
5abaca
6abaci
7aback
8abaft
9abaka
10abamp
11abase
12abash
13abate
14abaya
15abbas
16abbes
17abbey
18abbot
19abeam
20abele
21abets
22abhor
23abide
24abled
25abler
26ables
27abmho
28abode
29abohm
30aboil
31aboma
32aboon
33abort
34about
35above
36abris
37abuse
38abuts
39abuzz
40abyes
41abysm
42abyss
43acari
44acerb=WORDLE(A2:A8939,"rosebitmp","ha",23,"aahc",1251)
45acetaAROSEwhack
46achedBAITH
47achesCHAMP
48achooWHACK
49acids
WORDLE 26Jan22
Cell Formulas
RangeFormula
I44I44=FORMULATEXT(I45)
I45I45=WORDLE(A2:A8939,"rosebitmp","ha",23,"aahc",1251)
 

Attachments

  • W stats 1.png
    W stats 1.png
    72.7 KB · Views: 9
Checked both sites. Here are some examples.
Screen captures inserted. (proof that games were genuine).
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQRSTUVW
1Word
2aahedex.1 wordlegame.org=WORDLE(A2:A8939,"areinmkh","oscu",2534,"osc",341)
3aaliiAROSEfocus
4aarghCOINSlocus
5abacaMOCKS
6abaciHOCKS
7abackFOCUS
8abaft
9abakaex.2 wordlegame.orgex.3 wordlegame.orgex.4 wordle-play.com
10abampEXCELEXCELEXCEL
11abaseADIOSADOBEALIEN
12abashBURSTBADGE
13abateSKILL
14abaya
15abbasfor fun, started with "excel""excel" again"excel again"
16abbes1st argument kept the green "l" out=WORDLE(A2:A8939,"xclo","e",5,"adb",124)(..."xc","e",4,"el",15) , chose "alien"
17abbey(..."excl") chose from results "adios"badgesuper lucky guess
18abbot2nd argument, kept the green "i" out alsobarde
19abeam(..."excladoi",,,"s",5) chose "burst"
20abele3rd argument , followed correct patternsNotes:
21abets(..."excadoburt","li",53,"ss",54)There is a different CF approach between the 2 sites
22abhorFor ex.4 "e" is both yellow and green but there is only one "e"
23abide=WORDLE(A2:A8939,"excadoburt","li",53,"ss",54)For ex.3 "e" is both yellow and black=> is only one "e" for sure
24abledshillIf ex.4 would have happened with ex.3's CF, would have meant
25ablerskillchose "skill" , lucky guessthat are 2 "e"'s
26ablesspill
27abmhoswillEven if we start with a word with dups, could be helpful
28abode
29abohmHumble Conclusion:
30aboilWhatever rules we follow, solving wordle games with the
31abomahelp of WORDLE function is, in my opinion, fun, but too easy.
32aboonDomestic use, for fun, is ok, engaged in a competition, wouldn’t be fair.
33abort
wordle org
Cell Formulas
RangeFormula
I2,C23I2=FORMULATEXT(I3)
I3:I4I3=WORDLE(A2:A8939,"areinmkh","oscu",2534,"osc",341)
K16K16=FORMULATEXT(L17)
L17:L18L17=WORDLE(A2:A8939,"xclo","e",5,"adb",124)
C24:C27C24=WORDLE(A2:A8939,"excadoburt","li",53,"ss",54)
Dynamic array formulas.

W other sites.png
 
Some lambda formulas "workout".
Letters distribution, 2 methods. Duplicate letters counted as one.
1st method. No UNIQUE, no MID functions.
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQR
1WordLetters distribution all words (no dups) 1st method, no UNIQUE, no MID needed
2aahedDuplicate letters are counted as one
3aaliisingle cell formula P14
4aargh=CHAR(SEQUENCE(26,,97)) =LET(a,A2:A8939,l,CHAR(SEQUENCE(26,,97)),s,SEQUENCE(8938), r,REDUCE(0,s,LAMBDA(v,i, v+ISNUMBER(SEARCH(l,INDEX(a,i))))),SORT(IF({1,0},l,r),2,-1))
5abacaonly for 1st word in list
6abaciSEARCH delivers for "a" first position only
7aback=--(ISNUMBER(SEARCH(C8#,A2)))
8abafta1
9abakab0summing all search arrays for each word in list
10abampc08938 iterations for all words in list with REDUCE
11abased1=REDUCE(0,SEQUENCE(8938),LAMBDA(v,i,v+ISNUMBER(SEARCH(C8#,INDEX(A2:A8939,i)))))
12abashe13620
13abatef01023joiningsorting descending ordersingle cell
14abayag01412=IF({1,0},C8#,G12#)=SORT(I15#,2,-1)P14
15abbash11617a3620s4124s4124
16abbesi03993b1023e3993e3993
17abbeyj0708c1412a3620a3620
18abbotk01052d1617r2753r2753
19abeaml01188e3993o2632o2632
20abelem02516f708i2516i2516
21abetsn0184g1052l2231l2231
22abhoro0924h1188t2139t2139
23abidep02231i2516n1922n1922
24abledq01270j184u1657u1657
25ablerr01922k924d1617d1617
26abless02632l2231c1412c1412
27abmhot01310m1270y1372y1372
28abodeu079n1922p1310p1310
29abohmv02753o2632m1270m1270
30aboilw04124p1310h1188h1188
31abomax02139q79g1052g1052
32aboony01657r2753b1023b1023
33abortz0465s4124k924k924
34about689t2139f708f708
35above209u1657w689w689
36abris1372v465v465v465
37abuse227w689z227z227
38abutsx209x209x209
39abuzzy1372j184j184
40abyesz227q79q79
41abysm
letters distribution 1
Cell Formulas
RangeFormula
C4C4=FORMULATEXT(C8)
E7,I14,L14,G11E7=FORMULATEXT(E8)
C8:C33C8=CHAR(SEQUENCE(26,,97))
E8:E33E8=--(ISNUMBER(SEARCH(C8#,A2)))
G12:G37G12=REDUCE(0,SEQUENCE(8938),LAMBDA(v,i,v+ISNUMBER(SEARCH(C8#,INDEX(A2:A8939,i)))))
I15:J40I15=IF({1,0},C8#,G12#)
L15:M40L15=SORT(I15#,2,-1)
P15:Q40P15=LET(a,A2:A8939,l,CHAR(SEQUENCE(26,,97)),s,SEQUENCE(8938),r,REDUCE(0,s,LAMBDA(v,i,v+ISNUMBER(SEARCH(l,INDEX(a,i))))),SORT(IF({1,0},l,r),2,-1))
Dynamic array formulas.
 
Letters distribution.
2nd method
. using UNIQUE and MID, single cell formula
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQRSTUVW
1WordLetters distribution all words (no dups) 2nd method, UNIQUE and MIDformula O9
2aahedDuplicate letters are counted as one =LET(a,A2:A8939,l,CHAR(SEQUENCE(26)+96),s,SEQUENCE(,5), u,MID(BYROW(MID(a,s,1),LAMBDA(x,CONCAT(UNIQUE(x,1)))),s,1), d,BYROW(l,LAMBDA(x,SUM(--(x=u)))), SORT(IF({1,0},l,d),2,-1))
3aaliiunique letters, each word
4aargh=BYROW(MID(A2:A8939,SEQUENCE(,5),1),LAMBDA(x,CONCAT(UNIQUE(x,1))))
5abacaahed=CHAR(SEQUENCE(26)+96)
6abaciali=MID(C5#,SEQUENCE(,5),1)=BYROW(K7#,LAMBDA(x,SUM(--(x=E7#))))
7abackarghaheda3620single cell
8abaftabcalib1023O9
9abakaabciarghc1412s4124
10abampabckabcd1617e3993
11abaseabftabcie3993a3620
12abashabkabckf708r2753
13abateabmpabftg1052o2632
14abayaabseabkh1188i2516
15abbasabshabmpi2516l2231
16abbesabteabsej184t2139
17abbeyabyabshk924n1922
18abbotabsabtel2231u1657
19abeamabesabym1270d1617
20abeleabeyabsn1922c1412
21abetsabotabeso2632y1372
22abhorabemabeyp1310p1310
23abideabelabotq79m1270
24abledabetsabemr2753h1188
25ablerabhorabels4124g1052
26ablesabideabetst2139b1023
27abmhoabledabhoru1657k924
28abodeablerabidev465f708
29abohmablesabledw689w689
30aboilabmhoablerx209v465
31abomaabodeablesy1372z227
32aboonabohmabmhoz227x209
33abortaboilabodej184
34aboutabomabohmq79
35aboveabonaboil
36abrisabortabom
letters distribution 2
Cell Formulas
RangeFormula
C4,M6,E6C4=FORMULATEXT(C5)
C5:C8942C5=BYROW(MID(A2:A8939,SEQUENCE(,5),1),LAMBDA(x,CONCAT(UNIQUE(x,1))))
K5K5=FORMULATEXT(K7)
E7:I8944E7=MID(C5#,SEQUENCE(,5),1)
K7:K32K7=CHAR(SEQUENCE(26)+96)
M7:M32M7=BYROW(K7#,LAMBDA(x,SUM(--(x=E7#))))
O9:P34O9=LET(a,A2:A8939,l,CHAR(SEQUENCE(26)+96),s,SEQUENCE(,5),u,MID(BYROW(MID(a,s,1),LAMBDA(x,CONCAT(UNIQUE(x,1)))),s,1),d,BYROW(l,LAMBDA(x,SUM(--(x=u)))),SORT(IF({1,0},l,d),2,-1))
Dynamic array formulas.
 
Challenging task. Extract all existing anagrams of Words list, in descending order, 2D array.
Part 1.
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQRS
1Worddefined name, word list A2:A8939=wlNote: index nr. for words
2aahedD6:=BYROW(MID(wl,SEQUENCE(,5),1),LAMBDA(x,CONCAT(SORT(x,,,1))))step3.with no anagrams in list
3aaliistep1. sort letters of each word in ascending orderstep 2. unique values, exactly onceidentifying index nr. =NOT(O6#)*SEQUENCE(8938)
4aarghall anagrams will be duplicatesall the rest will be anagramswords that have anagrams
5abaca(expand,sort,join, for each row)=UNIQUE(D6#,,1)=XMATCH(D6#,I6#)=ISNA(M6#)=O6#*SEQUENCE(8938)
6abaciaadehbaaiilu#N/ATRUEx1
7abackaaiilNote:aaghrnr. words1FALSE0
8abaftaaghrb,u,xaaabcappear only once2FALSE0
9abakaaaabcvariabele namesaabci=ROWS(I6#)3FALSE0
10abampaabciin final formulaaabck49284FALSE0
11abaseaabckaabftout of5FALSE0
12abashaabftaaabk89386FALSE0
13abateaaabkaabmptotal words7FALSE0
14abayaaabmpaabes8FALSE0
15abbasaabesaabhs9FALSE0
16abbesaabhsaabet10FALSE0
17abbeyaabetaaaby11FALSE0
18abbotaaabyabbey12FALSE0
19abeamaabbsabbot#N/ATRUE14
20abeleabbesabeel#N/ATRUE15
21abetsabbeyabhor13FALSE0
22abhorabbotabdei14FALSE0
23abideaabemabilo#N/ATRUE18
24abledabeelaabmo15FALSE0
25ablerabestabnoo#N/ATRUE20
26ablesabhorabotu16FALSE0
27abmhoabdeiabeov17FALSE0
28abodeabdelabuzz#N/ATRUE23
29abohmabelrabesy#N/ATRUE24
30aboilabelsabmsy#N/ATRUE25
31abomaabhmoaacir#N/ATRUE26
32aboonabdeoaacet#N/ATRUE27
33abortabhmoacdeh#N/ATRUE28
34aboutabiloachoo18FALSE0
35aboveaabmoacdiy19FALSE0
36abrisabnooacgin20FALSE0
37abuseabortaciin#N/ATRUE32
38abutsabotuaceek21FALSE0
39abuzzabeovaccim22FALSE0
40abyesabirsaccko#N/ATRUE35
41abysmabesuacdlo#N/ATRUE36
42abyssabstuacetu#N/ATRUE37
43acariabuzzaadeg23FALSE0
44acerbabesyaadpt24FALSE0
45acetaabmsyaaddx25FALSE0
46achedabssyaddde#N/ATRUE41
47achesaaciradeiu26FALSE0
48achooabceradios#N/ATRUE43
49acidsaacetadimt27FALSE0
50acidyacdehadimx28FALSE0
51acingacehsabdoo#N/ATRUE46
Extracting anagrams 1
Cell Formulas
RangeFormula
D2D2=FORMULATEXT(D6)
I5,K9,M5,O5,Q5I5=FORMULATEXT(I6)
D6:D8943D6=BYROW(MID(wl,SEQUENCE(,5),1),LAMBDA(x,CONCAT(SORT(x,,,1))))
I6:I4933I6=UNIQUE(D6#,,1)
M6:M8943M6=XMATCH(D6#,I6#)
O6:O8943O6=ISNA(M6#)
Q6:Q8943Q6=O6#*SEQUENCE(8938)
K10K10=ROWS(I6#)
K12K12=ROWS(D6#)
Dynamic array formulas.
Named Ranges
NameRefers ToCells
wl='Extracting anagrams 1'!$A$2:$A$8939D6
 
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQRSTUVWXYZAAAB
1WordPart2.extracting horizontally, rows index numbers of matching anagrams
2aahedfor a single row (first row). we have to write a formula that can spill horizontally
3aaliiaadehbaaiiluTRUEx=TRANSPOSE(FILTER(SEQUENCE(ROWS(wl)),D3=D3#))
4aarghaaiilaaghrFALSE1141 =>words of row 1 and row 141 are anagrams
5abacaaaghraaabcFALSEstep4.
6abaciaaabcaabciFALSEwe need to do same calculations for all 8938 rows.
7abackaabciaabckFALSEsince BYROW can not spill horizontally, will use REDUCE with an accumulator "v" that
8abaftaabckaabftFALSEbuilds the array row by row, appending the array "v" of (1,i-1) rows to current i row
9abakaaabftaaabkFALSE
10abampaaabkaabmpFALSE=REDUCE(0,SEQUENCE(8938),LAMBDA(v,i,IF(SEQUENCE(i)=i,LET(x,IF(INDEX(D3#,i)=D3#,SEQUENCE(8938),""),TRANSPOSE(FILTER(x,x<>""))),v)))
11abaseaabmpaabesFALSEd1141#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
12abashaabesaabhsFALSE22#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Arows of this color, that have same value
13abateaabhsaabetFALSE33#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Ahorizontally, are like this because of the "appending" iteration
14abayaaabetaaabyFALSE44#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aprocess, and corespond to the rows that have no anagrams.
15abbasaaabyabbeyFALSE55#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/AAll these rows will be filtered out anyhow.
16abbesaabbsabbotTRUE66#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
17abbeyabbesabeelTRUE77#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
18abbotabbeyabhorFALSE88#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
19abeamabbotabdeiFALSE99#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
20abeleaabemabiloTRUE1010#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
21abetsabeelaabmoFALSE1111#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
22abhorabestabnooTRUE1212#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
23abideabhorabotuFALSE1313#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
24abledabdeiabeovFALSE14516#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
25ablerabdelabuzzTRUE15518#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
26ablesabelrabesyTRUE1616#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
27abmhoabelsabmsyTRUE1717#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
28abodeabhmoaacirTRUE18244#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
29abohmabdeoaacetTRUE1919#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
30aboilabhmoacdehTRUE206006046336346987612#N/A#N/A#N/A#N/A#N/A
31abomaabiloachooFALSE21212121212121#N/A#N/A#N/A#N/A#N/A
32aboonaabmoacdiyFALSE22222222222222#N/A#N/A#N/A#N/A#N/A
33abortabnooacginFALSE23546785#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
34aboutabortaciinTRUE24547793802#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
35aboveabotuaceekFALSE255487946532#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
36abrisabeovaccimFALSE2628#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
37abuseabirsacckoTRUE2783#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
38abutsabesuacdloTRUE2628#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
39abuzzabstuacetuTRUE29292929292929#N/A#N/A#N/A#N/A#N/A
40abyesabuzzaadegFALSE30303030303030#N/A#N/A#N/A#N/A#N/A
41abysmabesyaadptFALSE31313131313131#N/A#N/A#N/A#N/A#N/A
42abyssabmsyaaddxFALSE328517617#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
43acariabssyadddeTRUE33333333333333#N/A#N/A#N/A#N/A#N/A
44acerbaaciradeiuFALSE34343434343434#N/A#N/A#N/A#N/A#N/A
45acetaabceradiosTRUE356531#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
46achedaacetadimtFALSE36635#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
47achesacdehadimxFALSE37761980918094#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
48achooacehsabdooTRUE38383838383838#N/A#N/A#N/A#N/A#N/A
49acidsachooadoptFALSE39393939393939#N/A#N/A#N/A#N/A#N/A
50acidyacdisadnowTRUE40404040404040#N/A#N/A#N/A#N/A#N/A
51acingacdiyadeozFALSE41599#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
52aciniacginadltuFALSE42424242424242#N/A#N/A#N/A#N/A#N/A
53ackeeaciinacdnuFALSE439581137#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A
Extracting anagrams 2
Cell Formulas
RangeFormula
D3:D8940D3=BYROW(MID(wl,SEQUENCE(,5),1),LAMBDA(x,CONCAT(SORT(x,,,1))))
F3:F4930F3=UNIQUE(D3#,,1)
H3:H8940H3=ISNA(XMATCH(D3#,F3#))
J3,J10J3=FORMULATEXT(J4)
J4:K4J4=TRANSPOSE(FILTER(SEQUENCE(ROWS(wl)),D3=D3#))
J11:U8948J11=REDUCE(0,SEQUENCE(8938),LAMBDA(v,i,IF(SEQUENCE(i)=i,LET(x,IF(INDEX(D3#,i)=D3#,SEQUENCE(8938),""),TRANSPOSE(FILTER(x,x<>""))),v)))
Dynamic array formulas.
Named Ranges
NameRefers ToCells
'Extracting anagrams 2'!wl='Extracting anagrams 2'!$A$2:$A$8939J4, D3
 
WORDLE function WordleHelperFromMrExcel.xlsx
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAI
1WordPart3.step5. extracting the anagram words: index(wl,unique(filter(d,x)))
2aahed
3aalii=IFERROR(INDEX(wl,UNIQUE(FILTER(J4#,H4#))),"")
4aarghaadehbaaiiluTRUEx1141#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Adaahedaheade
5abacaaaiilaaghrFALSE22#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabbasbabas
6abaciaaghraaabcFALSE33#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabbesbabes
7abackaaabcaabciFALSE44#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabeamameba
8abaftaabciaabckFALSE55#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabetsbastebatesbeastbeatsbetastabes
9abakaaabckaabftFALSE66#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabledbaledblade
10abampaabftaaabkFALSE77#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aablerbalerblareblear
11abaseaaabkaabmpFALSE88#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aablesbalesblasesable
12abashaabmpaabesFALSE99#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabmhoabohm
13abateaabesaabhsFALSE1010#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabodeadobe
14abayaaabhsaabetFALSE1111#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabortboarttabor
15abbasaabetaaabyFALSE1212#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabrissabir
16abbesaaabyabbeyFALSE1313#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabusebeaus
17abbeyaabbsabbotTRUE14516#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabutstabustsubatubas
18abbotabbesabeelTRUE15518#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aabyssbassy
19abeamabbeyabhorFALSE1616#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacerbbracecaber
20abeleabbotabdeiFALSE1717#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacheschase
21abetsaabemabiloTRUE18244#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacidsasdiccadiscaids
22abhorabeelaabmoFALSE1919#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacmescamesmaces
23abideabestabnooTRUE206006046336346987612#N/A#N/A#N/A#N/A#N/Aacnedcaneddance
24abledabhorabotuFALSE21212121212121#N/A#N/A#N/A#N/A#N/Aacnescanesscena
25ablerabdeiabeovFALSE22222222222222#N/A#N/A#N/A#N/A#N/Aacornnarcoracon
26ablesabdelabuzzTRUE23546785#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacredarcedcadrecaredcedarraced
27abmhoabelrabesyTRUE24547793802#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacrescarescarseescarracesscareserac
28abodeabelsabmsyTRUE255487946532#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aacridcairddaric
29abohmabhmoaacirTRUE2628#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aactedcadet
30aboilabdeoaacetTRUE2783#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aactinantic
31abomaabhmoacdehTRUE2628#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aactortaroc
32aboonabiloachooFALSE29292929292929#N/A#N/A#N/A#N/A#N/Aacylsclaysscaly
33abortaabmoacdiyFALSE30303030303030#N/A#N/A#N/A#N/A#N/Aadderdareddreadreadd
34aboutabnooacginFALSE31313131313131#N/A#N/A#N/A#N/A#N/Aaddlededalladed
35aboveabortaciinTRUE328517617#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aadeemedema
36abrisabotuaceekFALSE33333333333333#N/A#N/A#N/A#N/A#N/Aadeptpatedtaped
37abuseabeovaccimFALSE34343434343434#N/A#N/A#N/A#N/A#N/Aaditsditasstaidtsadi
38abutsabirsacckoTRUE356531#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aadmandaman
39abuzzabesuacdloTRUE36635#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aadmenamendmanedmenadnamed
40abyesabstuacetuTRUE37761980918094#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aadoreoaredoread
41abysmabuzzaadegFALSE38383838383838#N/A#N/A#N/A#N/A#N/Aadornandroradon
42abyssabesyaadptFALSE39393939393939#N/A#N/A#N/A#N/A#N/Aadustdauts
43acariabmsyaaddxFALSE40404040404040#N/A#N/A#N/A#N/A#N/Aadzeddazed
44acerbabssyadddeTRUE41599#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aadzesdazes
45acetaaaciradeiuFALSE42424242424242#N/A#N/A#N/A#N/A#N/Aaedeseased
46achedabceradiosTRUE439581137#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aafireferia
47achesaacetadimtFALSE44444444444444#N/A#N/A#N/A#N/A#N/Aagarsragas
48achooacdehadimxFALSE45454545454545#N/A#N/A#N/A#N/A#N/Aagersgearsragessagersarge
49acidsacehsabdooTRUE461315#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/A#N/Aaggereggargager
50acidyachooadoptFALSE47474747474747#N/A#N/A#N/A#N/A#N/Aagismsigma
Extracting anagrams 3
Cell Formulas
RangeFormula
W3W3=FORMULATEXT(W4)
D4:D8941D4=BYROW(MID(wl,SEQUENCE(,5),1),LAMBDA(x,CONCAT(SORT(x,,,1))))
F4:F4931F4=UNIQUE(D4#,,1)
H4:H8941H4=ISNA(XMATCH(D4#,F4#))
J4:U8941J4=REDUCE(0,SEQUENCE(8938),LAMBDA(v,i,IF(SEQUENCE(i)=i,LET(x,IF(INDEX(D4#,i)=D4#,SEQUENCE(8938),""),TRANSPOSE(FILTER(x,x<>""))),v)))
W4:AH1570W4=IFERROR(INDEX(wl,UNIQUE(FILTER(J4#,H4#))),"")
Dynamic array formulas.
Named Ranges
NameRefers ToCells
'Extracting anagrams 3'!wl='Extracting anagrams 3'!$A$2:$A$8939W4, D4
 
WORDLE function WordleHelperFromMrExcel.xlsx
VWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAX
1Part4.step6. array "d" in descending order of nr.anagrams/row
2step5. extracting the anagram words: index(wl,unique(filter(d,x)))=BYROW(W4#,LAMBDA(x,COUNTA(FILTER(x,x<>""))))
3=IFERROR(INDEX(wl,UNIQUE(FILTER(J4#,H4#))),"")=INDEX(W4#,SORTBY(SEQUENCE(ROWS(W4#)),AJ4#,-1),SEQUENCE(,COLUMNS(W4#)))
4daahedaheade2apersapresasperparesparsepearsprasepresarapesreapssparespearfinal
5abbasbabas2leastsetalslatestalestealstelataelstalestealsteslaresult
6abbesbabes2arlesearlslareslaserlearsralesrealsseral
7abeamameba2lapseleapspalespealspleassalepsepalspale
8abetsbastebatesbeastbeatsbetastabes7perispierspriespriseripesspeirspierspire
9abledbaledblade3abetsbastebatesbeastbeatsbetastabes
10ablerbalerblareblear4acrescarescarseescarracesscareserac
11ablesbalesblasesable4amensmanesmansemeansmensanamesnemas
12abmhoabohm2arilslairslarisliarslirasrailsrials
13abodeadobe2aspennapesneapspanespeanssneapspean
14abortboarttabor3caretcartecatercratereactrectatrace
15abrissabir2deistdietsditeseditssitedstiedtides
16abusebeaus2diolsidolslidosloidssloidsoldisolid
17abutstabustsubatubas4doersdoserredosresodrodesrosedsored
18abyssbassy2emitsitemsmetismitessmitestimetimes
19acerbbracecaber3esterreestresetsteersteretersetrees
20acheschase2lavessalveselvaslavevalesvalseveals
21acidsasdiccadiscaids4leaptleptapaletpetalplatepleattepal
22acmescamesmaces3pastepatespeatsseptaspatetapestepas
23acnedcaneddance3peersperespersepreespresespeerspree
24acnescanesscena3resawsawersewarswareswearwareswears
25acornnarcoracon3acredarcedcadrecaredcedarraced
26acredarcedcadrecaredcedarraced6airtsastirsitarstairstriatarsi
27acrescarescarseescarracesscareserac7albasbaalsbalasbalsabasalsabal
28acridcairddaric3alertalterartellaterrateltaler
29actedcadet2ardebbardebaredbeardbreaddebar
30actinantic2asheddeashhadesheadssadheshade
31actortaroc2asterratesresatstaretarestears
32acylsclaysscaly3baresbaserbearsbraessabersabre
33adderdareddreadreadd4cruetcuretcutereructrecuttruce
34addlededalladed3daterderatratedtaredtradetread
35adeemedema2deersdreesredesreedssedersered
36adeptpatedtaped3deilsdelisidlesisledsidleslide
37aditsditasstaidtsadi4gatergrategreatretagtargeterga
38admandaman2haleshealsleashselahshalesheal
39admenamendmanedmenadnamed5heroshoershorsehosershoershore
40adoreoaredoread3insetneistnitessentisteintines
41adornandroradon3leetssleetsteelsteleteelsteles
42adustdauts2manosmasonmoansmonasnomassoman
43adzeddazed2matesmeatssatemsteamtamesteams
44adzesdazes2notesonsetsetonstenostonetones
45aedeseased2partspratsspratstraptarpstraps
46afireferia2pilespliesslipespeilspielspile
47agarsragas2poresposerprosereposropesspore
48agersgearsragessagersarge5ratosroastrotassortatarostoras
49aggereggargager3reinsresinrinserisenserinsiren
50agismsigma2riotsrotistirostorsitriostrois
Extracting anagrams 3
Cell Formulas
RangeFormula
AJ2AJ2=FORMULATEXT(AJ4)
W3,AL3W3=FORMULATEXT(W4)
W4:AH1570W4=IFERROR(INDEX(wl,UNIQUE(FILTER(J4#,H4#))),"")
AJ4:AJ1570AJ4=BYROW(W4#,LAMBDA(x,COUNTA(FILTER(x,x<>""))))
AL4:AW1570AL4=INDEX(W4#,SORTBY(SEQUENCE(ROWS(W4#)),AJ4#,-1),SEQUENCE(,COLUMNS(W4#)))
Dynamic array formulas.
Named Ranges
NameRefers ToCells
'Extracting anagrams 3'!wl='Extracting anagrams 3'!$A$2:$A$8939W4
 

Forum statistics

Threads
1,214,985
Messages
6,122,602
Members
449,089
Latest member
Motoracer88

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top