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?


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.


ŁADNE +1, nie zauważyłem wcześniej, jak to po prostu powtarzający się wzór czwórki
PeterH
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.