Produkt kartezjański w programie Excel 2013

1

Mam program Excel w tym formacie.

+----------+-------+---------+--------+--------+
| TicketId | PubId | PubName | Model1 | Model2 |
+----------+-------+---------+--------+--------+
|     1234 |    12 | abc     | xyz1   | pqr1   |
|     1235 |    34 | iuy     | fgy6   | piu8   |
+----------+-------+---------+--------+--------+

i staram się stworzyć tabelę taką jak ta podana poniżej.

+----------+---------+-------+
| TicketId | Display | Value |
+----------+---------+-------+
|     1234 | PubId   | 12    |
|     1234 | PubName | abc   |
|     1234 | Model1  | xyz1  |
|     1234 | Model2  | pqr1  |
|     1235 | PubId   | 34    |
|     1235 | PubName | iuy   |
|     1235 | Model1  | fgy61 |
|     1235 | Model2  | piu8  |
+----------+---------+-------+

Wiem, że jest to produkt kartezjański lub zastosowanie krzyżowe (pod względem SQL), ale chcę to zrobić w programie Excel.

Czy istnieje sposób na wykonanie tego rodzaju reprezentacji danych za pomocą programu Excel?

VoidMain
źródło
prawdopodobnie byś potrzebował zapytania mocy użytkownika, aby „UnPivot” dane, działałoby to bardzo podobnie do tego, jak możesz UnPivot w SQL
PeterH

Odpowiedzi:

2

Załóżmy, że dane źródłowe zajmują A1: E3.

Załóżmy, że nagłówek docelowy zajmuje G1: I1.

Wprowadź formuły:

G2=INDIRECT(ADDRESS(2+(ROW()-2)/4,1))
H2=INDIRECT(ADDRESS(1,2+MOD((ROW()-2),4)))
I2=INDIRECT(ADDRESS(2+(ROW()-2)/4,2+MOD((ROW()-2),4)))

Przeciągnij G2: I2 w dół, aż do G9: I9.

Akina
źródło
ŁADNE +1, nie zauważyłem wcześniej, jak to po prostu powtarzający się wzór czwórki
PeterH