Challenge #47: Vehicle Identification Number Test
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Happy Halloween loyal weekly exercise participants, here is an exercise I hope does not scare you too much. Hopefully is a treat and not a trick. The link to last week’s challenge is HERE.
Use case: An Alteryx subscriber needs to build a process to validate VIN numbers to test for data quality issues across the fleet data. The algorithm is provided at the below wiki link.
http://en.wikipedia.org/wiki/Vehicle_identification_number
Objective: Please take the VIN numbers from the Input and create a new column for the check digit. Compare the check digit with the calculated check digit value. If the two values do not match (and there was no error in the calculation), then there is a mistake in the VIN. Out of the six VINs, how many vehicles have invalid codes?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
I took on the challenge of doing this without lookup tables.
IF [Position]=8 THEN 10 ELSE 9-MOD([Position],10) ENDIF * IF IsInteger([Letter]) THEN ToNumber(Letter) ELSE CharToInt([Letter])- IF CharToInt([Letter])<=73 THEN 64 ELSEIF CharToInt([Letter])<=82 THEN 73 ELSE 81 ENDIF ENDIF
and then to convert the sum to the check digit:
IF !REGEX_Match([VIN ID], '^[^IOQ]+$')
OR !REGEX_Match([VIN ID], '^[A-Z_0-9]+$')
THEN Null()
ELSEIF Mod([Value],11)=10 THEN 'X'
ELSE ToString(Mod([Value],11)) ENDIF
I think the VIN of "ABCDEFGHIJKLMNOPQ" should come back with a Null because it is invalid as it contains an I,O,Q. I also verify that it is only capital letters and numbers.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
This was a great skill-builder exercise for me. Now, I appreciate the value of parsing a string into (readers' guess: Columns or Rows), in order to allow for all of that SQL-esque stuff. Good stuff!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
working on earning a badge ...
Cheers,
Mark
Chaos reigns within. Repent, reflect and restart. Order shall return.
Please Subscribe to my youTube channel.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Great challenge - loved the fact that it required research.
My solution was kind of a hybrid solution (when I compared it afterwards to some of the other solutions)
For anyone who needs the lookup tables they are in the attached flow.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
My solution. I remember solving this one last year trying to prep for the Grand Prix qualification rounds! But I didn't save my solution... and I didn't know how to use several of the tools I used this time... so no idea how I did it a year ago!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Here's my solution. I've mostly used formula tools because they suit the way my brain works. Enjoyed this one lots!