Этого будет достаточно для вашего примера. Вам нужно будет немного изменить, чтобы соответствовать реальной базе данных.
Example Data
Company | Address | City | State | ZIP | Phone | GM | EmailGM | PD | EmailPD | SM | EmailSM | PRM | EmailPRM
ABC | 1234 M | Saint | MN | zip | phone | gm | gm1@gm | pd | pd1@pd | sm | sm1@sm | prm | prm@prm
Result
Company | Address | City | State | ZIP | Phone | Name | Email
ABC | 1234 M | Saint | MN | zip | phone | gm | gm1@gm
ABC | 1234 M | Saint | MN | zip | phone | pd | pd1@pd
ABC | 1234 M | Saint | MN | zip | phone | sm | sm1@sm
ABC | 1234 M | Saint | MN | zip | phone | prm | prm1@prm
Company column (and Address, City, State, ZIP, Phone)
=INDIRECT("A"&(CEILING((ROW()+1)/4-1, 1)))
Name column (and Email)
=INDIRECT(CHAR(CODE("G")+MOD((ROW()-2), 4)*2)&CEILING((ROW()-1)/4+1, 1))
объяснение
В столбце Компания формула ссылается на столбец "A"
а номер строки рассчитывается из текущей строки.
ROW()-1
корректирует номер строки назад, потому что у нас есть заголовок в таблице данных. Мы используем номер 1, потому что данные таблицы данных начинаются со строки 2, а не со строки 1.
/4 + 1
основном копирует строку результата 4 раза, затем корректирует номер строки результата на единицу, потому что у нас есть заголовок в таблице данных. Мы используем номер 4, потому что у нас есть 4 имени и адреса электронной почты. Мы используем номер 1, потому что данные таблицы данных начинаются со строки 2, а не со строки 1.
CEILING( ... , 1 )
округляет номер строки до целого числа.
В столбце "Имя" формула ссылается на столбец "G"
а номер строки рассчитывается из текущей строки.
(ROW()-2)
сдвигает результат MOD
обратно на 0
. Мы используем номер 2, потому что данные таблицы результатов начинаются со строки 2 .
MOD( ... , 4)
вычисляет, какой столбец получить. Результат 0
означает столбец G
, 1
означает столбец H
и т.д. Мы используем номер 4, потому что у нас есть 4 имени и адреса электронной почты.
+ ... * 2
смещает столбец, выбранный справа от столбца G
по the result of modulo, multiplied by 2
. Мы используем номер 2, потому что у нас есть 2 столбца, имя и адрес электронной почты, чтобы получить.
CODE("G")
преобразует символ "G" в его код ASCII.
CHAR( ... )
преобразует значение смещенного столбца (от 7 до 11, то есть "G", например, в столбец "K") обратно в строку.
CEILING( ... )
дает номер строки данных для выборки.
инструкция
Просто измените букву столбца на соответствующий столбец.
Пример:
в столбце "Адрес" измените букву "A"
на "B"
в столбце электронной почты измените букву "G"
на "H"
Заметка
Вы упомянули, что у вас будет 7 имен и адресов электронной почты. Вам нужно будет изменить формулу, чтобы использовать 7 вместо 4.
Эта формула чувствительна к тому, где вы положили эту формулу. Эта формула предполагает, что вы поместите ее в строку 2 (строка 1 для заголовка). Вам нужно будет отрегулировать, если вы поместите его в строку 1 (см. Объяснение)
Эта формула не пропускает пустое имя и адрес электронной почты. Все компании будут иметь ровно 4 строки, независимо от количества доступных имени и адреса электронной почты.
Это не предназначено для замены базы данных, но вы можете использовать данные, сгенерированные по этой формуле, для создания базы данных.