Find Column Number from Column Name in Excel using C++
Today, we are gonna write a simple C++ program to find Column Number from Column Name in Excel sheets.
Excel sheets are one the most commonly used functionalities with regards to keeping information and keeping up records that are to be utilized frequently.
Each excel sheet has cells where the information is entered. Each one of these cells is identified with the assistance of their unique row and column number combination.
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.
For example,
Column Name | Column Number |
Z | 26 |
AY | 51 |
CB | 80 |
ZZ | 702 |
AAC | 705 |
Method to get Column Number from Column Name
The method which we use to find the column number from column name in Excel is very similar to that of conversion from one number system to another.
Since we have 26 alphabets in total, hence, we can take the base of the number system as 26 here.
Let us take an example to understand better.
For example, if we have to find the column number for CDA, we will do the following steps.
CDA = 3*26*26 + 4*26 + 1
= 26(3*26 + 4) + 1
= 26(0*26 + 3*26 + 4) + 1
=2133
Same as a number system conversion with base 26.
C++ code to get Column Number from Column Name in Excel
#include<bits/stdc++.h> #include<iostream> using namespace std; //function to display the column number form column name int Convert_to_Column_Number(string s) { //variables used int i, result = 0; //loop for iterating each alphabet for(i = 0 ; i<s.length() ; i++) { //multiplying by 26 updating result //process similar to a conversion with base 26 system result *= 26; result += s[i] - 'A' + 1; } //returning the answer after conversion return result; } //int main/driver function int main() { //variables used int column_number; char column_name[100]; //taking the input from the user cout<<"Enter column name for which you want the column number: "; cin>>column_name; //calling the function for conversion column_number=Convert_to_Column_Number(column_name); //displaying result cout<<"\nThe column number for column name "<<column_name<<" is: "; cout<<column_number<<endl; return 0; }
Output
Enter column name for which you want the column number: ASD The column number for column name ASD is: 1174
Note
- In this code, we have not checked if the input from the user is valid or not.
- Validation of the input could be done by adding a few more lines of code.
- We can also add error handling/messages in the same program.
Hope this will help!
Take a look at these also, you might find ‘em interesting!
Leave a Reply