Using this barcode to split data into columns (pharmacy related)

pharmavenger

New Member
Hello everyone!

I'm a pharmacy student working on how to extract numbers from medication QR codes into individualized columns in Excel.

For example, this code
 010030093552606517201130101040951182110091947809740 needs to put into 3 columns: GTIN, Lot, and Expiry date. GTIN is donated by 01 in front and has a 14 fixed digit. Lot number is denoted by 10 and the digits may vary (its not fixed so that is why we were having trouble). Expiry date is denoted by 17 and its fixed at 6 digits. I have tried the following code: =LEFT(MID(A1,SEARCH("17",A1)+2,LEN(A1)),FIND("21"-1,MID(A1,SEARCH("17",A1)+2,LEN(A1)))-1)

<tbody>
</tbody>

This is an screenshot of what I'm working towards: https://paste.pics/0d7ee6a250f7a17721281285a2985621

Excel Facts

Wildcard in VLOOKUP
Use =VLOOKUP("Apple*" to find apple, Apple, or applesauce

sykes

Well-known Member
Is the GTIN always first, and the Exp date always second?

sykes

Well-known Member
If the GTIN's always first, then that one's easy: =MID(A1,3,14)
If the Exp date's always second, then that one's easy: =MID(A1,19,6)

Not at all sure about retrieving the Lot# - bearing in mind that both it, AND the serial number can be up to 20 characters each!
You can use INSTR and INSTRREV etc, but to try and pick them out of a "Random" string will (I think) need a bit more info on any more reliable constants

pharmavenger

New Member
Yes, the order would be GTIN, Expiry, and then LOT number.

pharmavenger

New Member
The GTIN and Exp worked perfectly! Thank you so much.

I'm not sure what INSTR OR INSTERREV are or how to use them.

pharmavenger

New Member
If the GTIN's always first, then that one's easy: =MID(A1,3,14)
If the Exp date's always second, then that one's easy: =MID(A1,19,6)

Not at all sure about retrieving the Lot# - bearing in mind that both it, AND the serial number can be up to 20 characters each!
You can use INSTR and INSTRREV etc, but to try and pick them out of a "Random" string will (I think) need a bit more info on any more reliable constants

Yes, the order would be GTIN, Expiry, and then LOT number followed by serial number (but I don't need the serial number)

Fluff

MrExcel MVP, Moderator
=LEFT(MID(A1,27,LEN(A1)),FIND("21",MID(A1,27,LEN(A1)))-1)

pharmavenger

New Member
Yes, the order would be GTIN, Expiry, and then LOT number followed by serial number (but I don't need the serial number)
I'm sorry, I would like to correct something, the order of the barcode is GTIN, Serial, Expiry, and then Lot

Rick Rothstein

MrExcel MVP
Do these formulas do what you want (they are based on the picture you posted in the first link in your first message)...

GTIN: =MID(A2,3,14)

Lot: =MID(A2,LEN(B2)+LEN(C2)+9,7)

Expiry: =MID(A2,19,6)

Note: The above formulas assume your barcode number is in cell A2 and the the GTIN is to be in cell B2, the Lot number is to be in cell C2 and the Expiry is to be in cell D2.

Last edited:

pharmavenger

New Member
Do these formulas do what you want (they are based on the picture you posted in the first link in your first message)...

GTIN: =MID(A2,3,14)

Lot: =MID(A2,LEN(B2)+LEN(C2)+9,7)

Expiry: =MID(A2,19,6)

Note: The above formulas assume your barcode number is in cell A2 and the the GTIN is to be in cell B2, the Lot number is to be in cell C2 and the Expiry is to be in cell D2.
The GTIN formula works perfectly! The Lot and Expiry formulas do not work. A2 will have the barcode number and from there I'm trying to derive the GTIN, LOT, and expiry. The GTIN number comes first (14 characters, its fixed), then serial, expiry (6 characters) and lot. Serial and Lot don't have fixed characters.

This is what I got using those formulas: https://paste.pics/26670cb31094b6f2a62e10c833513ade

1,102,710
Messages
5,488,441
Members
407,638
Latest member
brandynl

This Week's Hot Topics

• Timer in VBA - Stop, Start, Pause and Reset
[CODE=vba][/CODE] Option Explicit Dim CmdStop As Boolean Dim Paused As Boolean Dim Start Dim TimerValue As Date Dim pausedTime As Date Sub...
• how to updates multiple rows in muliselect listbox
Hello everyone. I need help with below code. code is only chaning 1st row in mulitiselect list box. i know issue with code...
• Delete Row from Table
I am trying to delete a row from a table using VBA using a named range to find what I need to delete. My Range is finding the right cell. In the...
• Assigning to a variable
I have a for each block where I want to assign the value in column 5 of the found row to the variable Serv. [CODE=vba] For Each ws In...
• Way to verify information
Hi All, I don't know what to call this formula, and therefore can't search. I have a spreadsheet with information I want to reference...
• Active Cell Address – Inactive Sheet
How to use VBA to get the cell address of the active cell in an inactive worksheet and then place that cell address in a location on the current...