Want to get involved? We're always looking for ideas and content for Weekly Challenges.
SUBMIT YOUR IDEAUpdate: Here's a completely ridiculous (but functional) solution with the check digit calculation in one formula tool, just to illustrate that fewer tools is not always better.
IF Mod(((ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),0,1))*8) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),1,1))*7) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),2,1))*6) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),3,1))*5) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),4,1))*4) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),5,1))*3) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),6,1))*2) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),7,1))*10) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),8,1))*0) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),9,1))*9) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),10,1))*8) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),11,1))*7) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),12,1))*6) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),13,1))*5) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),14,1))*4) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),15,1))*3) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),16,1))*2)), 11)=10 THEN 'X' ELSE Mod(((ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),0,1))*8) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),1,1))*7) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),2,1))*6) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),3,1))*5) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),4,1))*4) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),5,1))*3) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),6,1))*2) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),7,1))*10) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),8,1))*0) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),9,1))*9) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),10,1))*8) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),11,1))*7) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),12,1))*6) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),13,1))*5) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),14,1))*4) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),15,1))*3) + (ToNumber(Substring((Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([VIN],"A","1"),'B','2'),'C','3'),'D','4'),'E','5'),'F','6'),'G','7'),'H','8'),'J','1'),'K','2'),'L','3'),'M','4'),'N','5'),'P','7'),'R','9'),'S','2'),'T','3'),'U','4'),'V','5'),'W','6'),'X','7'),'Y','8'),'Z','9')),16,1))*2)), 11) ENDIF
Fun Challenge.
Enjoyed this one
I just stumbled upon this because I had just built a VIN validation macro (attached)! It adds a boolean column indicating whether the VIN checks or not.
I used the same logic for the challenge solution. I disagree that you need to build lookup tables or do any joins :P