Звучит, что вам нужна версия формулы удаления, продублированная для столбца A, и простая сумма для столбца B.
Столбец A
=IFERROR(INDEX(Data!A$1:A$1000,SMALL(IF(
MATCH(Data!A$1:A$1000,Data!A$1:A$1000,0)=ROW(Data!A$1:A$1000),ROW(Data!A$1:A$1000)),ROW())),"")
Array Formula , поэтому, пожалуйста, нажмите Ctrl + Shift + Enter , чтобы завершить его.После этого вы можете увидеть {}
вне формулы.
Столбец B
=SUMIF(Data!A$1:A$1000,A2,Data!B$1:B$1000)
Просто измените диапазон для ваших данных.
Напоминания: Формула в столбце A должна начинаться с Row#1
, или вам необходимо добавить некоторую константу смещения для корректировок.
Поскольку возвращаемое значение MATCH()
представляет позицию ключа в данном массиве.Если мы хотим, чтобы он был равен номеру строки, мы должны добавить некоторую константу, если массив не начинается с ROW#1
.Таким образом, настройка данных в Range(B3:B1000)
ниже.
=IFERROR(INDEX('Event Data'!B$3:B$1000,SMALL(IF(
MATCH('Event Data'!B$3:B$1000,
'Event Data'!B$3:B$1000,0)+2=ROW('Event Data'!B$3:B$1000),
ROW('Event Data'!B$3:B$1000)),ROW())-2),"")
Более того, диапазон должен точно соответствовать диапазону данных.Если вам нужно больше, чем диапазон данных для расширения в будущем, в формулу следует добавить IFERROR()
.
=IFERROR(INDEX('Event Data'!B$3:B$1000,SMALL(IFERROR(IF(MATCH(
'Event Data'!B$3:B$1000,'Event Data'!B$3:B$1000,0)+2
=ROW('Event Data'!B$3:B$1000),
ROW('Event Data'!B$3:B$1000)),FALSE),ROW())-2),"")
Наконец, я действительно рекомендую вам использовать встроенный в Excel Remove Duplicated
, так какФормула массива составляет около O (n ^ 2) сложности времени и использования памяти.И каждый раз, когда вы вводите какие-либо данные даже в другие ячейки, он автоматически пересчитывает все формулы, когда опция вычисления в вашем Excel автоматически. Это снизит производительность.