Вот то, что я мог бы придумать для формулы Excel.Надеюсь, это может подтолкнуть вас в правильном направлении.
Эта формула предполагает, что ваша первая таблица существует в диапазоне A1: E5, а вторая таблица существует в диапазоне G1: M3.Также предполагается, что имена столбцов второй таблицы просто повторяются без номера роли, прикрепленной к передней части (так же, как первая таблица).Эта формула является формулой массива, поэтому вы должны убедиться, что при ее вводе выполните CTRL + SHIFT + ENTER.
{=INDEX($A$2:$E$5,
MATCH(1,($G2=$A$2:$A$5)*((FLOOR((COLUMN() - COLUMN($H$1) ) / 3,1) + 1)=$B$2:$B$5),0),
MATCH(H$1,$A$1:$E$1,0))}
Первая часть использует форум INDEX
, который извлекает данные из диапазона, указанного выше.($ A $ 2: $ E $ 5) на основе номеров строк и столбцов, предоставленных следующими формулами MATCH
.
Первый MATCH
предоставляет номер строки для результата, указанного в разделе массива поискаравно 1. Я проверяю два условия: первое - проверить имя «Клуба» ($G2=$A$2:$A$5)
, а второе - проверить, для какой «Роли» мы находимся в данный момент ((FLOOR((COLUMN() - COLUMN($H$1) ) / 3,1) + 1)
.При этом используется функция FLOOR
для округления результата до целого числа и деления на количество столбцов (в нашем случае это 3: имя, фамилия и адрес электронной почты).
Конечный MATCH
- этовытащить номер столбца на основе имен заголовков из обеих таблиц.Если вы хотите включить изменяющиеся имена ролей в заголовки столбцов, вы можете изменить эту часть на что-то вроде этого:
{=INDEX($A$2:$E$5,
MATCH(1,($G2=$A$2:$A$5)*((FLOOR((COLUMN() - COLUMN($H$1) ) / 3,1) + 1)=$B$2:$B$5),0),
MOD(COLUMN() - COLUMN($H$1),3) + 3)}
Я добавляю 3 в конец мода из-за исходного диапазонакоторый был выбран для таблицы 1. Столбцы, которые мы хотим получить, начинаются с местоположения 3 в диапазоне.