Algorithm to get the excel-like column name of a number
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.
Understanding the Problem
In Microsoft Excel, columns are labeled with alphabetic headings: A, B, C, ..., Z, AA, AB, ..., AZ, ..., and so on. This system continues indefinitely, supporting the organization and navigation of potentially large datasets. When working programmatically or algorithmically with these column labels, there is often a need to convert between numerical indices (e.g., 1, 2, 3, ...) and Excel-like column names (e.g., A, B, C, ...).
Technical Explanation
The Excel column labeling system can be likened to a base-26 numeral system, yet it presents unique idiosyncrasies. If aligning this with a more familiar base system, one might relate:
- A = 1
- B = 2
- ...
- Z = 26
- AA = 27
- AB = 28
- ...
Algorithm Breakdown
To convert a given number to its corresponding Excel-like column name, the core idea is decomposing the number iteratively using base-26 logic, adjusting for Excel's 1-based index distinction:
- Initialize an Empty String for Result: Begin with an empty string to build the column name.
- Iteratively Transform the Number:
- Subtract 1 from the number to align with zero indexing.
- Calculate the remainder when dividing by 26.
- Convert this remainder into the corresponding alphabet (A-Z).
- Prepend this character to the result string.
- Update the number to be the integer division of itself by 26.
- Repeat until the number is reduced to zero.
- Return the Result: The constructed string represents the column name.
By following these steps, we systematically derive the column name for any arbitrary number.
Example
Consider converting the number 28 into an Excel-like column name:
- Start with the number 28.
- Subtract 1: 28 - 1 = 27.
- Remainder when dividing by 26:
27 mod 26 = 1. Corresponding letter: B. - Updated number:
floor(27 ÷ 26) = 1. - Again, subtract 1: 1 - 1 = 0.
- Remainder when dividing by 26:
0 mod 26 = 0. Corresponding letter: A. - Updated number:
floor(0 ÷ 26) = 0.
Result: "AB"
Python Code Illustration
Example Conversions Table
This table provides a few examples of number to column name conversions:
| Number | Excel Column Name |
| 1 | A |
| 2 | B |
| 26 | Z |
| 27 | AA |
| 28 | AB |
| 52 | AZ |
| 53 | BA |
| 702 | ZZ |
| 703 | AAA |
Additional Insights
Time Complexity
The conversion process efficiently handles the input number in logarithmic time relative to base 26, giving it a complexity on the order of log base 26 of N. Each iteration effectively reduces the problem's scope by a factor of 26.
Use Cases
- Spreadsheet Manipulation: When automating scripts for spreadsheet updates, fetching, or modifying column data without direct user interaction.
- Database Operations: Translating numerical indices to human-readable form when dealing with grid-like proprietary data structures.
- Data Reporting: Generating and presenting datasheets in software that mimics or interfaces with Excel.
Conclusion
The conversion of numerical indices to Excel-like column names centers around understanding a specialized numerical system akin to base-26. Mastering this conversion is essential for developers working with Excel programmatically, ensuring smooth interoperability between numerical data and human-readable forms. Practically implemented in a variety of programming environments, this algorithm enhances both clarity and functionality in data processing tasks.
Related reading
- Algorithm to group items in groups of 3
- Algorithm to group objects
- Algorithm to group sets of points together that follow a direction
- Algorithm to handle data aggregation from multiple error-prone sources
- Algorithm to implement kinetic scrolling
- Algorithm to implement non-binary trees using 1-dimensional vector?
- Algorithm to iterate through sample space of numbers
- Algorithm to loop over an array from the middle outwards?

DSA Fundamentals
Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.