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)
)