Convertir numero a columna tipo hoja de calculo

En algún caso podría suceder que necesitaramos saber cual seria la columna de una hoja de calculo teniendo solo el numero de columna, por ejemplo si el numero es 0, entonces la columna seria “A”, si el numero es 14, la columna seria “O”, o si el numero es 26 entonces la columna seria “AA”.

Usando la siguiente funcion, nos devolvería su respectiva columna
function entAcol($col_ent){
$hdc = array(0 => "A", 1 => "B", 2 => "C", 3 => "D", 4 => "E", 5 => "F", 6 => "G", 7 => "H", 8 => "I",9 => "J", 10 => "K", 11 => "L", 12 => "M", 13 => "N", 14 => "O", 15 => "P", 16 => "Q", 17 => "R", 18 => "S", 19 => "T", 20 => "U", 21 => "V", 22 => "W", 23 => "X", 24 => "Y", 25 => "Z");
return ($col_ent < 26) ? $hdc[$col_ent] : $hdc[(int)($col_ent/26)-1].$hdc[($col_ent % 26)];
}
Explicación:
Se crea un arreglo llamado hdc, que contiene las letras del alfabeto usado en las columnas de las hojas de calculo. Y se envía por parámetro el numero que se desea convertir.
Usando un if simplificado, revisamos si el numero es menor a 26, en ese caso solo devolvería la letra que contiene esa posición en el vector.
En caso de que el numero sea mayor o igual a 26, entonces regresa el numero enviado divido entre 26 y se le resta 1. Con esto obtenemos la primera letra.
Y se concatena el resultado del numero enviado haciendo una división modular a 26, con lo cual obtendríamos la segunda letra.
Ejemplos
echo entAcol(5);
//Resultado F

echo entAcol(30);
//Resultado AE
Nota
En este código, se empieza a contar desde 0 en el vector, si necesitas empezar de 1, puedes cambiar la inicializacion del vector mismo, y subir la validacion a 27, o restar 1 al numero recibido en la funcion

Author: angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana.
Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

4 thoughts on “Convertir numero a columna tipo hoja de calculo

Deja un comentario