
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 1
ingresa los datos, escribiéndolos o pegándolos en celdas y luego Sheet 2
tiene fórmulas que funcionan con los datos ingresados. Las fórmulas simplemente tomarán la entrada Sheet 1
y 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|Values
y luego se ocupará de las celdas vacías si su base de datos necesita verdadero NULL's
donde 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!A2
tiene datos ingresados. Las celdas A2:C2
activadas Sheet 2
deben 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 1
está 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()'s
en 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 2
y todos están bien divididos como deseas. Copy
y Paste|Special|Values
para que sean datos, no fórmulas, luego Search and Replace
el valor único sin literalmente nada especificado en el Replace
cuadro para crear espacios en blanco verdaderos para que tenga verdadero NULL's
después de la importación.
Por supuesto, tenga las fórmulas listas en algún lugar ( Sheet 3
tal 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.