Excel 2013のデカルト積


1

私はこのフォーマットで優れています。

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

そして私は下記のようなテーブルを作成することを目標としています。

+----------+---------+-------+
| 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  |
+----------+---------+-------+

私はそれがデカルト積またはクロス適用(SQLの観点から)であることを知っていますが、私はそれを優れた方法で行いたいと思います。

Excelを通してこのタイプのデータ表現をする方法はありますか?


あなたはおそらくデータを 'UnPivot'するためにユーザパワークエリをする必要があるでしょう、それはあなたがSQLでUnPivotすることができる方法と非常に似たように働くでしょう
PeterH

回答:


2

ソースデータがA1:E3を占めるとします。

宛先ヘッダがG1:I1を占めると仮定する。

式を入力してください。

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)))

G2:I2をG9:I9までドラッグします。


NICE + 1、これまでは気が付かなかったが、4の繰り返しパターン
PeterH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.