optimized: spill
more 3: nested LET still present, does not use TEXTAFTER
=LET(
comparelookup,
LET(
matchedstring, XLOOKUP(J3:J109, allquestions[number], allquestions[more3], "number not found", 0),
compareleft, LEFT(matchedstring, 20),
IF(compareleft="is incorrect because", MID(matchedstring, 22, LEN(matchedstring)-21), matchedstring)
),
IF((comparelookup=K3:K109) + (comparelookup=L3:L109), "dupe", comparelookup)
)