Exce как разбить столбец на два (три . . . несколько) столбцов?
Условие задано черечур витиевато, без поллитры и не разберешь...
Вы снова будете стращать народ своими формулами массива, но это бесперспективное занятие. Просто потому, что никто никогда эти формулы не запомнит.
Гораздо проще и понятнее поручить заданную вами задачку несложному макросу, который будет выполняться для произвольного натурального числа "N" в произвольном столбце листа, главное, чтобы в исходном столбце хватило ячеек и значений в них для разноски по строкам. Ведь глупо перетаскивать пустые ячейки, не так ли?
В принципе задачка сильно напоминает транспонирование матрицы, поэтому соответствующую формулу можно использовать внутри макроса...
Надо составить формулу которая находит положение в исходном столбце, по строке и столбцу текущей ячейки и создаёт ссылку через функцию ДВССЫЛ.
Поскольку новый столбец будет короче формула должна проверить что ячейка исходного столбца заполнена функцией НЕ(ЕПУСТО(...)), иначе выдавать пустое значение "---".
Пример разбиение столбца A на 2 столбца, начиная с первой ячейки.
формула первой строки для левого (первого) столбца:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*2))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*2 ; 1 ) ; "---")
формула для первой строки правого столбца:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*2+1))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*2+1 ; 1 ) ; "---")
Универсальная формула для записи, начиная со столбца F:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*2+СТОЛБЕЦ() - СТОЛБЕЦ( $F:$F ) ))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*2+СТОЛБЕЦ() - СТОЛБЕЦ( $F:$F ) ; 1 ) ; "---")
эти формулы растягиваются на весь диапазон таблицы
Для разбиения на 3 столбца
формула первой строки для левого (первого) столбца:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3 ; 1 ) ; "---")
формула для первой строки второго столбца:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3+1))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3+1 ; 1 ) ; "---")
формула для первой строки третьего столбца:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3+2))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3+2 ; 1 ) ; "---")
Универсальная формула для записи, начиная со столбца F:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3+СТОЛБЕЦ() - СТОЛБЕЦ( $F:$F ) ))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*3+СТОЛБЕЦ() - СТОЛБЕЦ( $F:$F ) ; 1 ) ; "---")
Для разбиения на N столбцов
формула первой строки для столбца M, нумерация столбца M начинается с нуля (левый столбец):
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*N+M ))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*N+M; 1 ) ; "---")
Универсальная формула для записи, разбиения на N столбцов, начиная со столбца F:
=ЕСЛИ( НЕ( ЕПУСТО( ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*N+СТОЛБЕЦ() - СТОЛБЕЦ( $F:$F ) ))) ; ДВССЫЛ( "A"&СТРОКА( $A$1 )+( СТРОКА() - СТРОКА( $A$1 ))*N+СТОЛБЕЦ() - СТОЛБЕЦ( $F:$F ) ; 1 ) ; "---")
эти формулы растягиваются на весь диапазон таблицы.
Вместо N надо поставить количество колонок (или ячейку в которой это записано), на которые надо разбить столбец, вместо M номер столбца начиная с 0 (или ячейку в которой это записано).
Универсальные формулы надо растягивать и по строке и по столбцу
При использовании в надо изменить адреса ячеек на адреса ячеек своей таблицы и обозначение исходного столбца ("A") на столбец своего проекта.