Декартово произведение в Excel 2013

809
VoidMain

У меня есть Excel в этом формате.

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

Есть ли способ сделать этот тип представления данных через Excel?

1
вам, вероятно, понадобится пользовательский мощный запрос для «UnPivot» данных, он будет работать очень похоже на то, как вы можете UnPivot в SQL PeterH 5 лет назад 0

1 ответ на вопрос

2
Akina

Предположим, исходные данные занимают 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.

Ницца +1, раньше не замечал, как это просто повторяющийся узор четверок PeterH 5 лет назад 0

Похожие вопросы