Это немного глупо, но должно работать, если мои «Допущения и интерпретация» верны.
Допущения и интерпретация
Предположение 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'!B2to:=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". Если ничего не найдено, ячейка останется пустой.
Примечание. Я лично не тестировал это решение для вашего случая использования. Тем не менее, я достаточно знаком с описанными этапами, чтобы быть уверенным, что он будет работать для вас без особых изменений. Пожалуйста, дайте мне знать, если у вас возникнут какие-либо ошибки.