Recuento máximo de caracteres y luego se desborda a la siguiente celda

Recuento máximo de caracteres y luego se desborda a la siguiente celda

Al crear una base de datos, las celdas deben tener un máximo de 250 caracteres, al ingresar datos quiero que la primera celda permita un máximo de 250 caracteres, a medida que continúo ingresando caracteres adicionales quiero que se desborde automáticamente a la siguiente celda adyacente hasta que alcance los 250 caracteres nuevamente y luego se desborda nuevamente hacia la siguiente celda adyacente. Tengo tres columnas establecidas para esto.

Respuesta1

HAY una manera sin nada especial (sin macros ni otras funcionalidades que no sean... de aprendizaje temprano...): use dos hojas.

Luego Sheet 1ingresa los datos, escribiéndolos o pegándolos en celdas y luego Sheet 2tiene fórmulas que funcionan con los datos ingresados. Las fórmulas simplemente tomarán la entrada Sheet 1y la dividirán según sea necesario. Cuando termine, con un lote o con todo, tendrá que hacer una o dos cosas. Convertirá las fórmulas a valores con Paste|Special|Valuesy luego se ocupará de las celdas vacías si su base de datos necesita verdadero NULL'sdonde existen "espacios en blanco" en Excel. Asumiré que necesitas el segundo; si no, usa el núcleo de las fórmulas.

Entonces, la celda Sheet1!A2tiene datos ingresados. Las celdas A2:C2activadas Sheet 2deben tener los datos divididos. Probará que el resultado propuesto de la fórmula principal esté en blanco y devolverá algo que NUNCA podría ocurrir si así fuera. Usaré un "PPP" simple en la fórmula, pero usted podría usar caracteres Unicode más altos, o quizás los antiguos códigos 128-255 para dibujar bordes.

La columna A simplemente obtiene:

=LEFT(Sheet1!A2,250)

La columna B obtiene:

=MID(Sheet1!A2,251,250)

La columna 3 obtiene:

=MID(Sheet1!A2,501,250)

Tenga en cuenta que la columna 3 no utiliza, RIGHT()ya que encontrar cuántos caracteres usar sería más complicado que el enfoque simple aquí. Lo que hace que eso funcione es que MID()no le importa si existen 501 caracteres o si existen 250 después de eso. De lo contrario, obtendrá un espacio en blanco, en lugar de un error. Así que hazlo simple, ¿eh?

Cada uno debe incluirse en una IF()prueba para ver si se devuelve un espacio en blanco y asignar el valor único si lo es, o dejar que el resultado permanezca, si no). Columna 1, por ejemplo:

=IF(LEFT(Sheet1!A2,250)="","PPP",LEFT(Sheet1!A2,250))

Misma técnica para las tres columnas. Si desea tener todo en blanco debajo de las filas realmente utilizadas (no tiene sentido para tres columnas fácilmente examinables, pero tal vez algún día haga esto con 320 columnas), envuélvalo todo en otra IF()que mire para ver si la celda correspondiente Sheet 1está vacía o no. Lo que devuelvas podría ser complicado, hay muchas posibilidades, pero si no te importa devolver el valor único, puedes combinar esos dos IF()'sen uno probando una AND()de las dos condiciones. Como se mencionó, también podrían adoptarse otros enfoques útiles.

Entonces... ahora tienes los datos Sheet 2y todos están bien divididos como deseas. Copyy Paste|Special|Valuespara que sean datos, no fórmulas, luego Search and Replaceel valor único sin literalmente nada especificado en el Replacecuadro para crear espacios en blanco verdaderos para que tenga verdadero NULL'sdespués de la importación.

Por supuesto, tenga las fórmulas listas en algún lugar ( Sheet 3tal vez) para volver a pegarlas en sus lugares para el próximo uso.

Finalmente, haz tu importación.

Sólo unas cuantas fórmulas simples, convertirlas en valores, convertir celdas que parecen en blanco en verdaderos espacios en blanco, y listo.

información relacionada