Skip to main content

How to convert column index into letters with Google Sheets

In Google Sheets, rows are indexed numerically, starting from 1, but columns are indexed alphabetically, starting from A. Hence, it is pretty straightforward to work with rows and trickier to work with columns as we need to convert between column index and corresponding letters. For example, what are the letters of column 999th in Google Sheets? In this post, we will look at how to convert a column index into its corresponding letters by using the built-in functions of Google Sheets.

What are letters of the column 999th in a spreadsheet?

Unfortunately, Google Sheets does not provide a ready-to-use function that takes a column index as an input and returns corresponding letters as output. However, there is a little trick of combining other available built-in functions to do the task.

In Google Sheets, there is the ADDRESS function that returns the cell reference, according to the specified row index (first parameter) and column index (second parameter) in the input. For example, ADDRESS(1, 100) returns $CV$1 as the address of the cell between the first row and the 100th column. With that result, we can say that the letters corresponding to the 100th column are CV. To find letters of other columns, we can change only the second parameter (column index) and keep the first parameter (row index) constantly at 1 (the first row).

Next thing, we need to find a way to extract letters from the address of the cell. How can we extract CV from $CV$1? It is quite obvious that the $ sign is used to separate the column letters and the row index. With that remark, we have two ways to extract letters:

  • The first way is to split $CV$1 by the $ sign to obtain an array of ['CV',1] and then keep only the first element. We can do these two actions with the built-in functions SPLIT and INDEX. SPLIT("$CV$1","$") returns a table of one row, two columns, and the letters CV is found at the first row and the first column of that table. We use then the INDEX function to get the content of that cell.

CV=INDEX(SPLIT("$CV$1","$"),1,1)

  • The second way is to use a regular expression to find the first substring of $CV$1 that is between two $ signs. Google Sheets provides the function REGEXEXTRACT and the regular expression to express "any text between two $ signs" is \$([A-Za-z]+)\$.

CV=REGEXEXTRACT("$CV$1","\$([A-Za-z]+)\$")

Combine all of these built-in functions, the formulas to find out the letters of the column 999th are:

  • =REGEXEXTRACT(ADDRESS(1,999),"\$([A-Za-z]+)\$")
  • =INDEX(SPLIT(ADDRESS(1,999),"$"),1,1)

The table below shows some examples of the above two formulas.

Column IndexColumn LettersFormula To Convert Column Index To Letters
1A=REGEXEXTRACT(ADDRESS(1,1),"\$([A-Za-z]+)\$")
26Z=REGEXEXTRACT(ADDRESS(1,26),"\$([A-Za-z]+)\$")
27AA=REGEXEXTRACT(ADDRESS(1,27),"\$([A-Za-z]+)\$")
50AX=REGEXEXTRACT(ADDRESS(1,50),"\$([A-Za-z]+)\$")
1000ALL=REGEXEXTRACT(ADDRESS(1,1000),"\$([A-Za-z]+)\$")
2000BXX=REGEXEXTRACT(ADDRESS(1,2000),"\$([A-Za-z]+)\$")
5000GJH=REGEXEXTRACT(ADDRESS(1,5000),"\$([A-Za-z]+)\$")
1A=INDEX(SPLIT(ADDRESS(1,1),"$"),1,1)
26Z=INDEX(SPLIT(ADDRESS(1,26),"$"),1,1)
27AA=INDEX(SPLIT(ADDRESS(1,27),"$"),1,1)
50AX=INDEX(SPLIT(ADDRESS(1,50),"$"),1,1)
1000ALL=INDEX(SPLIT(ADDRESS(1,1000),"$"),1,1)
2000BXX=INDEX(SPLIT(ADDRESS(1,2000),"$"),1,1)
5000GJH=INDEX(SPLIT(ADDRESS(1,5000),"$"),1,1)

Although Google Sheets does not provide a ready-to-use function that takes a column index as an input and returns corresponding letters as output, we can still do the task by leveraging other built-in functions and without understanding how column index and letters map to each other.

If you are looking for a solution that works with Google Apps Script, please read the post How to convert column index into letters with Google Apps Script.

Comments

People also enjoyed…

Create personal stock portfolio tracker with Google Sheets and Google Data Studio

I have been investing in the stock market for a while. I was looking for a software tool that could help me better manage my portfolio, but, could not find one that satisfied my needs. One day, I discovered that the Google Sheets application has a built-in function called GOOGLEFINANCE which fetches current or historical prices of stocks into spreadsheets. So I thought it is totally possible to build my own personal portfolio tracker with Google Sheets. I can register my transactions in a sheet and use the pivot table, built-in functions such as GOOGLEFINANCE, and Apps Script to automate the computation for daily evolutions of my portfolio as well as the current position for each stock in my portfolio. I then drew some sort of charts within the spreadsheet to have some visual ideas of my portfolio. However, I quickly found it inconvenient to have the charts overlapped the table and to switch back and forth among sheets in the spreadsheet. That's when I came to know the existen

Create a dividend income tracker with Google Sheets by simply using pivot tables

As my investment strategy is to buy stocks that pay regular and stable dividends during a long-term period, I need to monitor my dividends income by stocks, by months, and by years, so that I can answer quickly and exactly the following questions: How much dividend did I receive on a given month and a given year? How much dividend did I receive for a given stock in a given year? Have a given stock's annual dividend per share kept increasing gradually over years? Have a given stock's annual dividend yield been stable over years? In this post, I explain how to create a dividend tracker with Google Sheets. Manage stock transactions with Google Sheets Create dividend tracker with Google Sheets Track annual dividend amount of stocks Track dividend amount by month and by year Track annual dividend per share of stocks Track annual dividend yield of stocks Demo Conclusion References Manage stock transactions with Google Sheets I use a spreadsheet on Goo

How to convert column index into letters with Google Apps Script

Although Google Sheets does not provide a ready-to-use function that takes a column index as an input and returns corresponding letters as output, we can still do the task by leveraging other built-in functions ADDRESS , REGEXEXTRACT , INDEX , SPLIT as shown in the post . However, in form of a formula, that solution is not applicable for scripting with Google Apps Script. In this post, we look at how to write a utility function with Google Apps Script that converts column index into corresponding letters. With the solution in the form of a formula , we don't even need to understand how column index and letters map each other. With apps script, we need to understand the mapping to come up with an algorithm. In a spreadsheet, columns are indexed alphabetically, starting from A. Obviously, the first 26 columns correspond to 26 alphabet characters, A to Z. The next 676 columns ( 26*26 ), from 27th to 702nd, are indexed with 2 letters. [AA, AB, ... AY, AZ], [BA, BB, ... BY, BZ],