Excel: объединение двух наборов столбцов в один

Excel: объединение двух наборов столбцов в один

На одном листе Excel у меня есть два разных набора данных по три столбца в каждом, которые представляют очень похожие данные.

Я хотел бы объединить это в один набор из трех колонок.

В каждом наборе данных есть крайний левый столбец, который является ключом, по которому я хочу выполнить группировку.

Ключ появляется один раз или никогда в каждом наборе данных. Остальные столбцы числовые и могут быть пустыми (интерпретироваться как ноль). Две серии могут иметь разную длину.

Вот так:

[Name_A],[Score_A],[Value_A],[Name_B],[Score_B],[Value_B]
Adam,14,20,Johnny,8,
Johnny,11,,Bernice,5,5
,,,Adam,2,8

следует объединить в:

[Name],[Score],[Value]
Adam,16,28
Johnny,19,
Bernice,5,5

Порядок строк в конечном результате не важен.

решение1

Разберите ваши данные, используя текст в столбцах и используя запятую в качестве разделителя. Затем составьте список отдельных имен (Вы можете сделать это, используя удаление дубликатов на вкладке данных в Excel.) и используйте =sumif(Name_Column,Name1,Value1_Column).

Это должно суммировать все по именам и значениям.

Пример

решение2

Ключ к объединению ваших наборов данных — извлечь список уникальных имен. Этомногопроще, если все имена находятся в одном столбце. Если вам необходимо, чтобы ваши данные были организованы так, как вы показали, есть решение VBA, так что оставьте комментарий ниже, если вам это нужно.

В первой таблице ниже я переместил данные «B» под данные «A» и добавил еще несколько строк в каждый раздел.

введите описание изображения здесь

Эта формула, заполненная из E2, перечисляет имена и удаляет дубликаты:

=IFERROR(INDEX((A$2:A$15),MATCH(0,COUNTIF($E$1:E1,A$2:A$15),0)),"")

Это формула массива, поэтому ее необходимо вводить с помощью CTRLShiftEnter.

Эти две формулы, заполненные из F2 и G2, суммируют баллы и значения для каждого имени в списке:

=IF(LEN(E2)<1,"",SUMIF(A$2:A$15,E2,B$2:B$15))

=IF(LEN(E2)<1,"",SUMIF(A$2:A$15,E2,C$2:C$15)) ______________________________________________________________________

Как это работает:Внутренний метод COUNTIF()создает массив, содержащий количество раз, которое каждое имя из столбца A встречается в растущем списке в столбце E. Он MATCH()находит позицию первого 0 (соответствующего имени, которое еще не было указано) в этом массиве и использует ее как row_num в INDEX(), который выбирает имя из столбца A. Имена, которые уже были указаны, больше не появляются.

Вставляет IFERROR()пробелы для строк, которые могут иметь ошибку #NUM!, когда в формуле заканчиваются уникальные значения.

Две SUMIF()формулы просто складывают числа Score и Value для каждого имени. Вставляет IF()пробел для строк, где длина столбца E < 1 (т.е. ячейка не имеет имени и выглядит пустой).

Связанный контент