Isso será suficiente para o seu exemplo. Você precisará modificar um pouco para corresponder ao banco de dados real.
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))
Explicação
Na coluna Empresa, a fórmula refere-se à coluna "A"
e o número da linha é calculado a partir da linha atual.
ROW()-1
ajusta o número da linha de volta, porque temos o cabeçalho na tabela de dados. Usamos o número 1 porque os dados da tabela de dados começam na linha 2 , em vez da linha 1 .
/4 + 1
basicamente copia a linha de resultado 4 vezes e, em seguida, ajusta o número da linha de resultados por um, porque temos o cabeçalho na tabela de dados. Usamos o número 4 porque temos 4 nomes e e-mails . Usamos o número 1 porque os dados da tabela de dados começam na linha 2 , em vez da linha 1 .
CEILING( ... , 1 )
arredonda o número da linha até um número inteiro.
Na coluna Nome, a fórmula refere-se à coluna "G"
e o número da linha é calculado a partir da linha atual.
(ROW()-2)
muda o resultado de MOD
de volta para 0
. Usamos o número 2 porque os dados da tabela de resultados começam na linha 2 .
MOD( ... , 4)
calcula qual coluna obter. O resultado de 0
significa coluna G
, 1
significa coluna H
e assim por diante. Usamos o número 4 porque temos 4 nomes e e-mails .
+ ... * 2
desloca a coluna buscada à direita da coluna G
por the result of modulo, multiplied by 2
. Usamos o número 2 porque temos 2 colunas, Nome e e-mail, para buscar.
CODE("G")
converte o caractere "G" em seu código ASCII.
CHAR( ... )
converte o valor da coluna deslocada (7 a 11, que é "G" para a coluna "K", por exemplo) de volta para a string.
CEILING( ... )
fornece o número da linha de dados a ser buscado.
Instrução
Basta alterar a letra da coluna para a coluna correspondente.
Exemplo:
para a coluna Endereço, altere a letra "A"
para "B"
para coluna E-mail, altere a letra "G"
para "H"
Nota
Você mencionou que terá 7 nomes e e-mails . Você precisará ajustar a fórmula para usar 7 em vez de 4.
Esta fórmula é sensível para onde você coloca essa fórmula. Esta fórmula pressupõe que você irá colocá-lo na linha 2 (linha 1 para o cabeçalho). Você precisará ajustar se você colocar na linha 1 (veja Explicação )
Esta fórmula não pula o nome e o email em branco. Todas as empresas terão exatamente 4 linhas, independentemente do número de nomes e e-mails disponíveis.
Isto não pretende substituir o banco de dados , mas você pode usar os dados gerados por esta fórmula para criar o banco de dados.