Skip to content

Instantly share code, notes, and snippets.

@msubel
Created July 14, 2015 12:37
Show Gist options
  • Save msubel/9c70951a20efe5c72195 to your computer and use it in GitHub Desktop.
Save msubel/9c70951a20efe5c72195 to your computer and use it in GitHub Desktop.
An Excel Fromula to generate a UUID v4
=LOWER(CONCATENATE(DEC2HEX(RANDBETWEEN(0;POWER(16;8));8);"-";DEC2HEX(RANDBETWEEN(0;POWER(16;4));4);"-";"4";DEC2HEX(RANDBETWEEN(0;POWER(16;3));3);"-";DEC2HEX(RANDBETWEEN(8;11));DEC2HEX(RANDBETWEEN(0;POWER(16;3));3);"-";DEC2HEX(RANDBETWEEN(0;POWER(16;8));8);DEC2HEX(RANDBETWEEN(0;POWER(16;4));4)))
@JesseWStratton
Copy link

JesseWStratton commented Mar 15, 2024

Just one question... The GUID's get refreshed evertime I do something to the column or near the column that contain the formula. Is there a way to just generate it once and fix the generated GUID's?

Regards, Arie

I set one cell in excel to be my UUID generator using the formula and naming the range, then I use VBA to refer to the named range when I want to commit the value to a stored location using something like:

For Each rRecord In rNewRecords
     rRecord.Offset(0, -1).Value = [r_uuid].Value
     [r_uuid].Calculate
Next rRecord

Where r_uuid is a named range in the workbook.

@CodedSpirit-dev
Copy link

For Spanish-MX Excel

=MINUSC(CONCATENAR(DEC.A.HEX(ALEATORIO.ENTRE(0,POTENCIA(16,8)),8),"-",DEC.A.HEX(ALEATORIO.ENTRE(0,POTENCIA(16,4)),4),"-","4",DEC.A.HEX(ALEATORIO.ENTRE(0,POTENCIA(16,3)),3),"-",DEC.A.HEX(ALEATORIO.ENTRE(8,11)),DEC.A.HEX(ALEATORIO.ENTRE(0,POTENCIA(16,3)),3),"-",DEC.A.HEX(ALEATORIO.ENTRE(0,POTENCIA(16,8)),8),DEC.A.HEX(ALEATORIO.ENTRE(0,POTENCIA(16,4)),4)))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment