เรารู้ว่าหมายเลขคอลัมน์ Excel เป็นตัวอักษร เริ่มจาก A หลัง Z จะเป็น AA, AB ถึง ZZ แล้ว AAA, AAB ถึง ZZZ และต่อไป ดังนั้นคอลัมน์ 1 คือ A คอลัมน์ 27 คือ Z ที่นี่เราจะดูวิธีได้ตัวอักษรคอลัมน์ถ้ามีหมายเลขคอลัมน์ ถ้าหมายเลขคอลัมน์คือ 80 จะเป็น CB
สมมติเรามีตัวเลข n และค่าคือ 28 เราต้องเอาเศษกับ 26 ถ้าเศษเป็น 0 ตัวเลขคือ 26, 52 เป็นต้น เราใส่ Z ในสตริงเอาต์พุท ค่า n จะกลายเป็น n/26 - 1 และถ้าเศษไม่เป็นศูนย์ เราต้องใส่ตัวอักษรที่สอดคล้องในสตริง และทำ n = n/26 สุดท้ายพิมพ์สตริงย้อนกลับ
ตัวอย่าง
#include <iostream>
#include <algorithm>
using namespace std;
void showColumnLetters(int n) {
string str = "";
while (n) {
int rem = n % 26;
if (rem == 0) {
str += 'Z';
n = (n / 26) - 1;
} else {
str += (rem - 1) + 'A';
n = n / 26;
}
}
reverse(str.begin(), str.begin() + str.length());
cout << str << endl;
}
int main() {
int n = 700;
cout << "Cell name of " << n << " is: ";
showColumnLetters(700);
}
ผลลัพธ์
Cell name of 700 is: ZX