Convertir numero a columna tipo hoja de calculo en PHP

Convertir numero a columna tipo hoja de calculo en PHP

El problema del número a columna ¿Cómo podemos convertir un determinado número a columna correspondiente de una hoja de cálculo? En algún caso pod

Bot para obtener información cercana del sismo del 19 de septiembre
Cambiar php 7x a 5x
Usar Google Chrome como apoyo para el desarrollo web
Debug con y sin acceso a archivos de sistema en PHP
Debug en apache sin modificar archivo conf

El problema del número a columna

¿Cómo podemos convertir un determinado número a columna correspondiente de una hoja de cálculo?

En algún caso podría suceder que necesitáramos 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”

Si el numero es 26 entonces la columna seria “AA”.

Usando la siguiente función, 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 esto obtendríamos la segunda letra.

Ejemplos

echo entAcol(5);
//Resultado F

echo entAcol(30);
//Resultado AE
número a columna
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 función.

COMMENTS

WORDPRESS: 4
  • comment-avatar
    Oscar S 8 años

    se que quizás no haya columna 700, pero …

    qué pasa con entAcol(700);
    ?

    😉

  • comment-avatar

    entAcol(700) da como resultado “ZY”.

    saludos

  • comment-avatar
    Oscar S 8 años

    jaja que wey
    era con 800 😉

  • comment-avatar

    Tienes razón, a partir del 702 debería marcar AAA, veré la forma de arreglarlo.

    ¡Muchas gracias!