
Criando um banco de dados, as células devem ter no máximo 250 caracteres, ao inserir dados quero que a primeira célula permita no máximo 250 caracteres, à medida que continuo inserindo caracteres adicionais, quero que ele transborde automaticamente para a próxima célula adjacente até atingir 250 caracteres novamente e em seguida, transborde novamente para a próxima célula adjacente. Eu tenho três colunas estabelecidas para isso.
Responder1
Existe uma maneira sem nada de especial (sem macros ou outras funcionalidades que não sejam... de aprendizagem precoce): Use duas planilhas.
Ao Sheet 1
inserir os dados, digitando ou colando-os nas células e Sheet 2
você terá fórmulas que funcionam nos dados inseridos. As fórmulas simplesmente pegarão a entrada Sheet 1
e a dividirão conforme necessário. Quando terminar, com um lote ou tudo, você terá que fazer uma ou duas coisas. Você converterá as fórmulas em valores com e Paste|Special|Values
, em seguida, lidará com as células vazias se seu banco de dados precisar de true NULL's
onde existem "espaços em branco" no Excel. Presumo que você precise do segundo - basta usar o núcleo das fórmulas, caso contrário.
Então, a célula Sheet1!A2
tem dados inseridos. As células A2:C2
devem Sheet 2
ter os dados separados. Você testará o resultado proposto da fórmula principal para estar em branco e retornará algo que NUNCA poderia ocorrer nesse caso. Usarei um simples "PPP" na fórmula, mas você pode usar caracteres Unicode mais altos ou talvez os antigos códigos 128-255 para desenho de bordas.
A coluna A simplesmente obtém:
=LEFT(Sheet1!A2,250)
A coluna B obtém:
=MID(Sheet1!A2,251,250)
A coluna 3 obtém:
=MID(Sheet1!A2,501,250)
Observe que a Coluna 3 não usa, RIGHT()
pois descobrir quantos caracteres usar seria mais complicado do que a abordagem simples aqui. O que faz isso funcionar é que MID()
não importa se existem 501 caracteres ou se existem 250 depois disso. Você obtém um espaço em branco, se não, em vez de um erro. Então mantenha as coisas simples, hein?
Cada um precisa ser envolvido em um IF()
teste para ver se um espaço em branco é retornado e atribuir o valor exclusivo, se for, ou deixar o resultado permanecer, se não). Coluna 1, por exemplo:
=IF(LEFT(Sheet1!A2,250)="","PPP",LEFT(Sheet1!A2,250))
Mesma técnica para todas as três colunas. Se você quiser que tudo em branco abaixo das linhas realmente seja usado (inútil para três colunas facilmente examinadas, mas talvez você faça isso com 320 colunas algum dia), envolva tudo em outro IF()
que verifique se a célula correspondente Sheet 1
está vazia ou não. O que você retorna pode ser complicado, com muitas possibilidades, mas se você não se importar em retornar o valor único, poderá combinar os dois IF()'s
em um teste de uma AND()
das duas condições. Como mencionado, algumas outras abordagens úteis também poderiam ser adotadas.
Então... agora você tem os dados Sheet 2
e tudo bem dividido conforme desejado. Copy
e Paste|Special|Values
para torná-los dados, não fórmulas, então Search and Replace
o valor exclusivo com literalmente nada especificado na Replace
caixa para criar espaços em branco verdadeiros para que você tenha verdadeiros NULL's
após a importação.
Claro, tenha as fórmulas prontas em algum lugar ( Sheet 3
talvez) para colá-las novamente em seus lugares para qualquer próximo uso.
Por fim, faça sua importação.
Apenas algumas fórmulas simples, transformando-as em valores, transformando células que parecem em branco em verdadeiros espaços em branco, e pronto.