Find Column Name from Column Number in Excel using C++

Today, we are gonna write a simple C++ program to find Column Name from Column Number in Excel sheets.

Also read: Find Column Number from Column Name in Excel using C++

The rows in an excel sheet are numbered with values starting from 1, 2, 3,….., and so on.

 The columns, however, are identified with their character names. These start from A, B,………, Y, Z, AA, AB,……., AY, AZ, BA, BB,………, and so on.

Find Column Name from Column Number in Excel using C++

For example,

Column Number

Column Name

26

Z

51

AY

80

CB

702

ZZ

705

AAC

Algorithm to get Column Name from Column Number

  1. Let us suppose that the user has entered a number num, which is 28, for which we have to find the corresponding column name. 
  2. We need to take the remainder of num, 28 here, with 26. 
  3. If the remainder comes out to be 0 (for numbers like 26, 52, 78,…etc.), then we insert ‘Z’ in the char array that we made for storing the output string.
  4. Simultaneously, the new num now is updated to num/26 -1, because here assuming that 26 is ‘Z’ while in reality ‘Z’ is 25th with respect to the letter ‘A’.
  5. Otherwise, if the remainder is non-zero. (like 1, 2, ……, 24, 25), then we just insert the letter accordingly in the char array.
  6. And simultaneously, update num = num/26.
  7. To print the finally answer, we reverse the string and display it.

C++ code to get Column Name from Column Number in Excel

#include <bits/stdc++.h>
#include<iostream>
using namespace std;

//function to display the column name form column number
void Convert_to_Column_Name(int num)
{
  //variables used
  //array to store column name after conversion
  char name[100];
  int i = 0;

  //iterating loop
  while(num > 0)
    {
    //remainder after dividing number by 26 is stored
    int remainder = num%26;

    //if else condition to store appropriate alphabets
    if(remainder == 0)
        {
      name[i++] = 'Z';
      num = (num/26) - 1;
    }
    else
    {
      name[i++] = (remainder-1) + 'A';
      num = num/26;
    }
  }

  //storing '\0' at the end of the string
  name[i] = '\0';

  //we use the library function to reverse the string
  reverse(name, name + strlen(name));

  //display the result
  cout<<name;

  return;
}

//int main/Driver program
int main()
{
    //variable to store the column number
    int num;

    //taking the input from the user
    cout<<"Enter column number for which you want the column name: ";
    cin>>num;

    //checking for valid input
    if(num > 0)
    {
        //calling the function for conversion and displaying result
        cout<<"\nThe column name for column number "<<num<<" is: ";
        Convert_to_Column_Name(num);
    }
    else
    {
        cout<<"\nInvalid input!";
    }

  return 0;
}

Output

  • 1 – Character Input
Enter column number for which you want the column name: cghf

Invalid input!
  • 2 – Negative Input
Enter column number for which you want the column name: -85

Invalid input!
  • 3 – Zero Input
Enter column number for which you want the column name: 0

Invalid input!
  • 4 – Positive/Valid Input
Enter column number for which you want the column name: 702

The column name for column number 702 is: ZZ

Leave a Reply

Your email address will not be published. Required fields are marked *