
Создавая базу данных, ячейки должны быть длиной не более 250 символов, при вводе данных я хочу, чтобы первая ячейка позволяла вводить не более 250 символов, по мере того, как я продолжаю вводить дополнительные символы, я хочу, чтобы они автоматически переполнялись в соседнюю ячейку, пока снова не достигнут 250 символов, а затем снова переполнялись в соседнюю ячейку. Для этого у меня установлено три столбца.
решение1
ЕСТЬ способ, не требующий ничего особенного (никаких макросов или других не... требующих раннего обучения... функций): использовать два листа.
При Sheet 1
вводе данных, вводе или вставке их в ячейки, у Sheet 2
вас есть формулы, которые работают с введенными данными. Формулы просто берут ввод Sheet 1
и делят его по мере необходимости. Когда закончите, с пакетом или со всеми, вам придется сделать одну или две вещи. Вы преобразуете формулы в значения с помощью Paste|Special|Values
, затем разберетесь с пустыми ячейками, если вашей базе данных требуется true NULL's
там, где в Excel есть «пустые места». Я предполагаю, что вам нужно второе — просто используйте ядро формул, если нет.
Итак, в ячейку Sheet1!A2
введены данные. Ячейки A2:C2
на Sheet 2
должны иметь разделенные данные. Вы проверите предлагаемый результат основной формулы на предмет того, что он пустой, и вернете что-то, что НИКОГДА не может произойти, если это так. Я буду использовать простое "PPP" в формуле, но вы можете использовать более высокие символы Unicode или старые коды 128-255 для рисования границ, возможно.
Столбец A просто получает:
=LEFT(Sheet1!A2,250)
Столбец B получает:
=MID(Sheet1!A2,251,250)
В столбце 3 получаем:
=MID(Sheet1!A2,501,250)
Обратите внимание, что столбец 3 не используется, RIGHT()
так как поиск количества используемых символов был бы сложнее, чем простой подход здесь. Что делает это работающим, так это то, что MID()
неважно, существует ли 501 символ или 250 после этого. Вы получаете пробел, если нет, а не ошибку. Так что будьте проще, а?
Каждый из них необходимо обернуть в IF()
тест, чтобы увидеть, возвращается ли пустое значение, и присвоить уникальное значение, если это так, или оставить результат без изменений, если нет). Например, столбец 1:
=IF(LEFT(Sheet1!A2,250)="","PPP",LEFT(Sheet1!A2,250))
Тот же метод для всех трех столбцов. Если вы хотите, чтобы все пустое ниже строк фактически использовалось (бессмысленно для трех легко проверяемых столбцов, но, возможно, вы когда-нибудь сделаете это с 320 столбцами), то оберните все это в другой, IF()
который проверяет, Sheet 1
пуста ли соответствующая ячейка или нет. То, что вы возвращаете, может быть сложным, множество возможностей, но если вы не против вернуть уникальное значение, вы можете объединить эти два IF()'s
в один, проверяющий одно AND()
из двух условий. Как уже упоминалось, можно использовать и некоторые другие полезные подходы.
Итак... теперь у вас есть данные, Sheet 2
и все они аккуратно разделены по желанию. Copy
И Paste|Special|Values
чтобы сделать это данными, а не формулами, затем Search and Replace
уникальное значение, в котором буквально ничего не указано в Replace
поле, чтобы создать истинные пробелы, чтобы после импорта у вас было значение true NULL's
.
Конечно, приготовьте формулы где-нибудь ( Sheet 3
возможно), чтобы можно было вставить их на свои места для последующего использования.
Наконец, выполните импорт.
Всего несколько простых формул, преобразование их в значения, превращение пустых ячеек в настоящие пустые, и все готово.