Valores de texto em uma tabela dinâmica?

2

Eu tenho uma tabela (no MySQL) com 3 colunas:

Location    Category     Supplier

   A        Computers    Company X
   A        Printers     Company Y
   B        Computers    Company X
   B        Printers     Company Y
   B        Software     Company Y
   C        Computers    Company Y
   C        Software     Company Z

Agora preciso criar uma matriz contendo as informações acima, assim:

       Computers      Printers       Software

A      Company X      Company Y
B      Company X      Company Y      Company Y
C      Company Y                     Company Z

Eventualmente, preciso ter isso no Excel.

Na realidade, eu tenho um número variável de categorias, então fazê-lo no MySQL com uma junção para cada coluna não é uma boa opção. Eu poderia escrever uma função em PHP, mas eu queria saber se há uma solução mais elegante.

Procurei tabelas dinâmicas no Excel, mas elas parecem adequadas apenas para números como valores. Mas talvez eu esteja negligenciando alguma coisa, já que eu nunca trabalho com o Excel.

    
por Dylan 12.10.2011 / 19:43

2 respostas

2

Não sei se isso é tão "elegante" quanto você esperava, mas você está no caminho certo com a ideia da tabela dinâmica. Você apenas tem que enganar um pouco. Uma "coluna auxiliar", uma tabela dinâmica e a função "vlookup" podem ser seus amigos aqui.

Primeiro, para os dados originais, adicione uma coluna auxiliar para um "SupplierNumber". Empresa X = 1, empresa Y = 2, empresa Z = 3. Eu coloquei a coluna auxiliar como a primeira coluna, para facilitar o uso mais tarde em um vlookup. Observe que os dados estão agora nas células A5: D11.

Emseguida,gireosdadoscomoeste.Useiaopção"layout de tabela dinâmica clássica" na guia "Exibir" da caixa de diálogo "Opções da Tabela Dinâmica" (clique com o botão direito do mouse na tabela dinâmica para exibir essa caixa de diálogo).

Selecioneecopietodaatabeladinâmicaecole"special / values" em outro local ao lado da tabela dinâmica original. Em seguida, no corpo da cópia da tabela, insira a fórmula mostrada. Observe que a fórmula de vlookup está se referindo à tabela dinâmica original (a referência "H7" - consulte o diagrama anterior) e também ao intervalo A5: D11 mencionado anteriormente.

Comoeudisse,nãoéelegante,masfunciona.Existemmuitaspessoasinteligentesquenavegamnestesiteequeprovavelmenteirãoencontrarumasolução"elegante" para você!

    
por 12.10.2011 / 21:08
0

Eu descobri que você pode evitar a tabela dinâmica por completo. Veja a imagem abaixo. Use uma coluna auxiliar. Defina os intervalos nomeados mostrados. Configure seu layout como em G14: J18. No corpo da tabela, use o VLOOKUP com um SUMPRODUCT.

    
por 12.10.2011 / 23:59