CIEDE2000 implementation in Microsoft Excel

Function version: v1.0.0
Site statistics
Number of visits1 081
Number of files viewed161 + 606

Here we present an Excel spreadsheet that implements the CIEDE2000 color difference using a native single-line formula, 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 takes special cases into account, e.g. "atan2(0, 0)" is managed in the S and T columns, to ensure consistent mathematical behavior. The algorithm is robustly transcribed and the final CIEDE2000 result is accurate to at least 10 decimal places, as confirmed behind the scenes by implementations in MATLAB (Sharma) and JavaScript (Lindbloom) on 10,000 color pairs. The parametric factors kL, kC and kH (columns G, H and I) have been carefully tested and can be adjusted row by row. The complete formula is stored in hidden columns (L to AM), while the result Ξ”E2000 appears in column J. The K column contains a static test that must be deleted after being read. Column AN (rightmost) is grayed out to make it easier for you to expand the formula. Each line can be copied, pasted or moved down to extend calculations, while retaining its autonomy.

The original source of the CIEDE2000 formula in Microsoft Excel

The file is supplied in simple XLS format (Excel 97-2003), and uses only ASCII characters for maximum compatibility. You can take advantage of it wherever classic Excel files are accepted, such as on Google Sheets. This colorimetric solution is aimed at professionals such as Fogra and X-Rite, and of course anyone who wants to evaluate Ξ”E00s accurately and portably.

Source code accuracy and reliability

The difference between Sharma’s academic formulation and Lindbloom’s simplified formulation does not exceed Β±0.0003 on the final Ξ”E2000. The implementation presented here is 64-bit and guarantees more than 10 decimal places of precision; the choice of one formulation over another is, therefore, a technical detail.

How to determine if a given implementation of CIEDE2000 is academic or simplified?

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, the values of a* and b* are almost always limited to a range between -128 and +127, although the standard does not specify an official limit for these two components.

Example of two colors presenting a just-noticeable difference (JND) according to CIEDE2000
Color 1Color 2Value of Ξ”E2000
1
2
3
Examples of CIEDE2000 values calculated between two distinct colors
Color 1Color 2Value 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 185 and more) 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. When the ΔE2000 value exceeds 40, the colors being compared have virtually nothing in common, and we can no longer derive any precise information from them.

Files to download

Feel free to use these files provided by Michel, even for commercial purposes.

Site statistics : downloads
FileSizeNumber of clicks
ciede-2000.xls35 KB161
reference-dataset.txt4 KB606
Click on xls.zip to receive all these files in an archive.

Community

What do you think of this source code or CIEDE2000? Your opinion is important to us! The guestbook already contains 9 messages - including 1 in English. Take a look and share your opinion.