Como posso criar uma "união cruzada" no excel?

5

Eu tenho 2 folhas no Excel, cada uma com 10 linhas. Existe algum tipo de fórmula / macro de "junção cruzada" no Excel que permite criar uma terceira planilha com todas as linhas com junção cruzada (100 linhas no total).

Espo
fonte

Respostas:

0

Se o uso do OLEDB não for uma opção abaixo, a função poderá ser usada para gerar produtos cruzados

Option Base 1

Function Cross_Product_range(r1 As Range, r2 As Range) As Variant
    Cross_Product_range = Cross_Product_array(r1.Value, r2.Value)
End Function

Function Cross_Product_array(a1 As Variant, a2 As Variant) As Variant
    On Error GoTo ErrorHandler
    Dim TempArray(), k, m
    ReDim TempArray(UBound(a1) * UBound(a2), UBound(a1, 2) + UBound(a2, 2))
    k = 1
    For i = 1 To UBound(a1)
        For j = 1 To UBound(a2)
            m = 1
            For u = 1 To UBound(a1, 2)
                TempArray(k, m) = a1(i, u)
                m = m + 1
            Next
            For u = 1 To UBound(a2, 2)
                TempArray(k, m) = a2(j, u)
                m = m + 1
            Next
            k = k + 1
        Next
    Next
    Cross_Product_array = TempArray
    Exit Function
    ErrorHandler:
    Debug.Print Err
End Function

Uma vez que a função acima é adicionada ao módulo vba, Para produzir produtos cruzados A1:B5e C1:D5selecionar células de destino (por exemplo, E1: H25), insira a fórmula e use ctrl + shift + enter

=Cross_Product_range(A1:B5,C1:D5)
Prashant Bhate
fonte
0

Você poderia fazer isso facilmente com o Power Query (se você o tiver com sua versão do Excel):

Configure uma conexão de dados para cada uma das tabelas que você deseja combinar: Selecione a tabela no Excel e escolha "Da tabela / intervalo" em "Dados" na faixa de opções. Isso exibirá o editor do Power Query.

Para voltar ao Excel, clique na pequena seta no botão "Fechar e carregar", selecione "Fechar e carregar em" e depois em "Somente conexão". Caso contrário, você terminará com uma cópia da sua tabela no Excel ...

Faça o mesmo para a segunda tabela.

O painel "Consultas e conexões" agora deve estar aberto à direita da janela. Caso contrário, clique em "Dados -> Consultas e conexões" na faixa de opções.

As duas tabelas devem ser listadas como consultas.

A próxima etapa é fazer uma consulta de junção cruzada combinando as duas e retornar o resultado ao Excel:

Clique com o botão direito do mouse em uma das consultas no painel "Consultas e conexões" e selecione "Referência". Isso abrirá o editor Power Query novamente e criará uma terceira consulta que está apontando para uma de suas tabelas.

Agora escolha "Adicionar coluna -> Coluna personalizada" na faixa de opções do Power Query ... A fórmula para a nova coluna será o nome da segunda consulta - ou seja, os dados a serem cruzados. Se não houver espaço no nome, digite-o diretamente (por exemplo, = Tabela2, caso contrário, ele deverá ser = # "Tabela 2".

Agora você deve ter uma nova coluna denominada "Personalizado" com "Tabela" em cada célula. Clique no pequeno símbolo no cabeçalho da coluna para expandir cada tabela.

Tudo indo bem, você está pronto! Clique em "Fechar e carregar" e a tabela de junção cruzada deve aparecer em uma nova planilha.

Uma coisa a observar: essa junção cruzada não será atualizada automaticamente quando você alterar os dados de origem. Você precisará clicar com o botão direito do mouse e selecionar "Atualizar" para executar novamente a consulta de junção cruzada.

Provavelmente é mais direto do que estou fazendo parecer!

OfficeWorkerGuy
fonte