Я бы использовал Power Query Add-In для этого. В Excel 2016 Power Query встроен в ленту данных в разделе "Получить и преобразовать".
Power Query может начинаться с существующей таблицы Excel. Я бы начал с шага Split в столбце B, используя точку с запятой. Важным трюком является открытие раздела "Дополнительно" на странице "Разделить столбцы по разделителям" и введите большее число для: «Количество столбцов, на которые нужно разделить». По умолчанию будет установлен минимум, необходимый для ваших текущих данных, например, 3. Вы можете ввести большее число, например, 100, чтобы учесть будущие требования к данным.
Затем я выбрал бы Столбец А и использовал команду «Отключить столбцы / Отключить другие столбцы», чтобы вернуть все разделенные столбцы обратно в один столбец в несколько строк. Наконец, я бы снова использовал команду Split для сгенерированного столбца "Value", разделив его двоеточием.
Результат запроса может быть доставлен в виде таблицы Excel.
Возможно, вы бы добавили несколько шагов для удаления ненужных столбцов и переименования столбцов. Вы можете создать это без написания макроса или кода функции - вы просто щелкаете мышью в окне Power Query.
Я создал рабочее решение, которое вы можете загрузить с моего OneDrive и попробовать:
http://1drv.ms/1AzPAZp
Это файл: Power Query demo - динамическое разбиение столбца и его разделение на строки