CIEDE2000 implementation in Microsoft Excel
| Number of visits | 653 |
|---|---|
| Number of files viewed | 95 + 321 |
This Excel spreadsheet calculates the CIEDE2000 color difference (ΔE00) using a native Excel formula on a single line, without the need for macros or VBA. The implementation is scientifically validated and includes test pairs for formulations by Gaurav Sharma and Bruce Lindbloom. A total of 18 ΔE00 values are calculated on separate lines in two tables (9 for Sharma and 9 for Lindbloom). The formula handles special cases such as "atan2(0, 0)" to ensure consistent mathematical behavior. Parametric factors kL, kC and kH are adjustable on a per-line basis, each line being independent of the others. The algorithm is robustly transcribed, and the final CIEDE2000 result is accurate to at least 10 decimal places, validated by MATLAB (Sharma) and JavaScript (Lindbloom) implementations on 10,000 color pairs behind the scenes. The complete formula is stored in hidden columns (I to AN), while the visible ΔE2000 result appears in column H. The AO column is grayed out for easy expansion. Each line can be copied, pasted or moved down to extend calculations, while retaining its autonomy.
The file is supplied in the classic Excel 97-2003 XLS format, using ASCII characters only for maximum compatibility. On environments that accept native Excel files, such as Google Sheets, this spreadsheet is recognized. This implementation is intended for professional use by organizations such as Fogra and X-Rite, as well as for any workflow requiring accurate and portable ΔE00 calculations.
Source code accuracy and reliability
The difference between Sharma and Lindbloom formulations never exceeds ±0.0003 on the final ΔE2000, which corresponds to the usual difference measured between two 32-bit implementations and is imperceptible to the human eye. Our 64-bit implementations, all consistent with each other, guarantee at least 10 correct decimal places, so choosing one formulation over another mainly depends on the desired interoperability. The formulation that appears by default on this page is the most commonly used (its micro-advantage lies in its community anchoring and its greater lightness than its analog when vectorized).
✎ If you find a comment in the source code that does not correspond to another language, please inform the author of the site, who will study your suggestion and incorporate it into the source code.
CIELAB value ranges and interpretation of the ΔE2000
In the CIELAB color space, the L* component represents lightness and typically ranges from 0 (black) to 100 (white). The a* and b* components represent color axes: a* goes from green to red, while b* goes from blue to yellow. In practice, a* and b* values usually fall between -128 and +127, although they can slightly exceed these limits depending on the color conversion.
| Color 1 | Color 2 | Value of ΔE2000 |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 |
| Color 1 | Color 2 | Value of ΔE2000 |
|---|---|---|
| 5 | ||
| 10 | ||
| 15 |
ΔE2000 (CIEDE2000) measures the perceived difference between two colors: 0 means the colors are identical, and higher values (up to around 185 in extreme cases) indicate a larger difference. For example, a ΔE2000 value around 5 means the colors are close, while a value around 15 means they are clearly different.
Files to download
Feel free to use these files provided by Michel, even for commercial purposes.
| File | Size | Number of clicks |
|---|---|---|
| ciede-2000.xls | 51 KB | 95 |
| reference-dataset.txt | 4 KB | 321 |
| Click on xls.zip to receive all these files in an archive. | ||
Community
If you’d like to leave your opinion on this Microsoft Excel source code or CIEDE2000 in general, the guestbook already contains 1 messages in English, and 9 messages in total, so let us know what you think.