aiPreview
Open in TheBrain

optimized: spill

more2: range array not accounted for

=LET(
  matchedstring, XLOOKUP($J3:$J109, allquestions[number], allquestions[more2], "number not found", 0),
  comparelookup, TEXTAFTER(matchedstring, "is incorrect because ", 1, , , matchedstring),
  IF(comparelookup=$K3, "dupe", comparelookup)
)

more2: remove 0 and leave blank ('testedblank' test)

=LET(
  testedblank,XLOOKUP(wkg_lkup_arr,allquestions[number],allquestions[more2],"number not found",0),
  matchedstring,IF(testedblank=0,"",TEXTAFTER(testedblank,"is incorrect because ",1,,,testedblank)),
  IF(matchedstring=$M3:$M109,"dupe",matchedstring)
)

more3: range array accounted for

=LET(
  testedblank, XLOOKUP(J$3:J$109, allquestions[number], allquestions[more3], "number not found", 0),
  comparelookup, IF(testedblank=0,"",TEXTAFTER(testedblank,"is incorrect because ",1,,,testedblank)),
  IF((comparelookup=$K3:$K109)+(comparelookup=$L3:$L109), "dupe", comparelookup)
)