Это немного глупо, но должно работать, если мои «Допущения и интерпретация» верны.
Допущения и интерпретация
Предположение 1. Все ваши номера деталей уникальны, а ваши AttributeIdentifiers абсолютно одинаковы для атрибутов, которые вы хотите представить в каждом столбце во всех частях.
Предположение 2: AttributeIdentifiers уникальны в каждой части, то есть никогда не будет двух строк, имеющих одинаковый AttributeIdentifier и один и тот же номер детали.
Предположение 3: Исходные данные имеют заголовки в строке 1, а данные заполняются непрерывно, начиная со строки 2.
Предположение 4: Исходные данные выложены аналогично предоставленным скриншотам. "Номера деталей" находятся в столбце A, а "AttributeIdentifiers" - в столбце B, "Значения" - в столбце C, и на листе нет других данных, относящихся к этой проблеме.
Интерпретация: Вы хотите, чтобы номера деталей оставались в столбце A, а все атрибуты для этой детали указывались в одной строке под заголовками в соответствии с их AttributeIdentifier.
Решение
- Создайте новый лист в той же книге.
- Назовите первый лист
Old Data
, а второй лист New Report
.
- Скопируйте
'Old Data'!A:A
'New Report'!A:A
- Выполните «Удалить дубликаты на
'New Report'!A:A
- Скопируйте
'Old Data'!B:B
в 'New Report'!B:B
- Выполните "Удалить дубликаты" в
'New Report'!B:B
- Убедитесь, что вы не расширяете выделение за пределы этого столбца для этой операции.
- Удалить
'New Report'!B1
и сдвиньте оставшиеся ячейки в этом столбце вверх.
- Выберите все ячейки, которые имеют данные в
'New Report'!B:B
Скопируйте эти ячейки и используйте "Paste Special" и "Transpose", чтобы вставить их, начиная с 'New Report'!C1
.
- Удалить
'New Report'!B:B
Убедитесь, что 'New Report'!C:C
переходит, чтобы занять свое место.
- Добавьте новый столбец слева от
'Old Data'!A:A
- Примечание: это сместит все столбцы вправо, так что "Номер детали" будет в столбце B и так далее.
- (Необязательно) Установите
'Old Data'!A1
до UID
.
- Установите
'Old Data'!A2
к =CONCATENATE(B2,C2)
.
- Скопируйте
'Old Data'!A2
вниз по всему столбцу, до конца набора данных.
- Установите
'New Report'!B2
to: =IFERROR(VLOOKUP(CONCATENATE($A2,B$1),'Old Data'!$A:$D,4,FALSE),"")
.
- Скопируйте
'New Report'!B2
вниз по оставшейся части столбца, до конца набора данных.
- Скопируйте все ячейки в
'New Report'!B:B
, начиная с 'New Report'!B2
и заканчивается в нижней части набора данных, через оставшиеся столбцы справа.
- Выберите весь лист
'New Report'
. Скопируйте его и вставьте на место "Как значения", чтобы заблокировать данные.
- (Необязательно) Удалите
'Old Data'!A:A
Пояснение к шагу 14
Короче говоря, формула ищет в "Старые данные" подходящее значение для размещения в ячейке в соответствии с "Номером детали" и "AttributeIdentifier". Если ничего не найдено, ячейка останется пустой.
Примечание. Я лично не тестировал это решение для вашего случая использования. Тем не менее, я достаточно знаком с описанными этапами, чтобы быть уверенным, что он будет работать для вас без особых изменений. Пожалуйста, дайте мне знать, если у вас возникнут какие-либо ошибки.