
Я форматирую дамп данных из нашего программного обеспечения и пытаюсь оптимизировать процесс. Первый столбец содержит несколько групп символов, которые разделены _ между каждой группой. Затем я беру этот столбец и использую текст в столбцах, чтобы разделить их. Проблема в том, что мне действительно нужно разделить только первые две группы, остальные я бы оставил объединенными вместе. В свою очередь, я в конечном итоге создаю конкатенацию для компиляции всех второстепенных группировок, однако они не всегда соответствуют количеству группируемых столбцов, что приводит к дополнительным _, которые мне затем приходится возвращать и удалять.
Мне приходится строить эту штуку каждый день, так что если я смогу придумать правильную формулу для оптимизации и встроить макрос в это, это будет потрясающе. Я делаю это, чтобы отделить столбцы H и I от A, затем объединяю с _ между каждой ячейкой JM.
Скриншот примера данных:
решение1
Вот тут-то Excel действительно и нужны некоторые операторы базы данных, такие как PART
.
Тем не менее, мы можем сделать это сами.
1.B
Конечно, это легко.
=LEFT(A2,FIND("_",A2,1)-1)
2.C
Этот не совсем такой.
=MID(A2,FIND("_",A2,1)+1,FIND("_",A2,FIND("_",A2,1)+1)-FIND("_",A2,1)-1)
Если вы потратите время на разбор этого, то обнаружите, что он получает MID
строку, обозначение которой включает вложенный символ FIND
, чтобы найти _
внутри строки, которая началась с FIND
символа _
. Забавная штука.
3.D
Как только у вас это есть, остальное можно получить тривиально несколькими способами. Это показалось мне быстрым, не включающим никаких произвольных значений:
=MID(A2,LEN(B2)+LEN(C2)+3,LEN(A2))