Использование arrayformula для автозаполнения формул для новых записей-сравнение ячеек в одном столбце

относительный новичок в использовании формул в excel / Google Таблицах, и у меня возникли проблемы с выяснением,как я могу использовать формулу массива Для сравнения ячеек в разных строках,но тот же столбец в Google таблицах (в моем случае, как я могу сделать =IF(A3=A2, dothis, elsedothis) в качестве формулы массива. Мне также было бы интересно, есть ли у кого-нибудь другое решение, кроме формулы массива для автозаполнения формул.

особенности:

У меня есть список участников, которые сделали экспериментировать, и некоторые из них делали это несколько раз. С длинным списком участников и несколькими записями для некоторых участников трудно увидеть, где заканчивается информация одного участника и начинается следующий. Поэтому я хочу чередовать строки в сером и белом затенении на основе номера участника (т. е. все записи 001 серого цвета, все записи 002 белого цвета, 003 серого цвета и так далее). Для этого я помещаю столбец справа, используя формулу, которая проверяет, является ли участник номер в строке выше это то же самое, и, если нет, он добавляет один (я хотел бы использовать это, чтобы получить счет участника позже). Вот как выглядит набор данных, и я включил формулу справа.

A       B      ...  ...  X

001   9/1/16   ...  ...  1  (1)  
001   10/1/16  ...  ...  1  (=IF(A3=A2,X2,X2+1))
001   11/1/16  ...  ...  1  (=IF(A4=A3,X3,X3+1))
002   9/2/16   ...  ...  2  (=IF(A5=A4,X4,X4+1))
002   10/2/16  ...  ...  2  (=IF(A6=A5,X5,X5+1))
003   10/5/16  ...  ...  3  (=IF(A7=A6,X6,X6+1))
...

все это работает нормально и денди, но проблема в том, что когда я ввожу новую строку, она не заполняет формулу автоматически, и поэтому затенение не настраивается. Полагаю, я мог бы перерисовывать формулу каждый раз, когда я ввожу новую информацию об участнике, но это утомительно и я не единственный, кто использует его, так что он будет испорчен довольно быстро. Из того, что я посмотрел, arrayformula-это то, что я должен использовать. Но вы должны ссылаться на столбец в целом, если вы используете формула. У кого-нибудь есть идеи?

3 ответов


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

={1; ArrayFormula(IF(LEN(A3:A), offset(A2,0,0,ROWS(A3:A),1) + IF(A3:A = offset(A2,0,0,ROWS(A3:A),1), 0, 1),))}

увидеть, если это будет работать для вас ?

Примечание: пользовательская формула в условном форматировании, используемая в электронной таблице, -

=AND($X1<>"", ISODD($X1)) 

один из способов добиться желаемого результата:

чтобы чередовать строки в сером и белом затенении на основе номера участника, выполните следующие действия:

  1. под выбрать conditional formatting

Enteries для

  • наконец-то Done
  • чтобы получить количество участников вы можете использовать формулу =countunique(A2:A16)


    вы можете сделать это все вместе без дополнительного вспомогательного столбца вообще, просто используя Условное форматирование:

    пользовательская функция для добавления в параметр условного форматирования:

    =isodd($A:$A)=TRUE
    

    enter image description here

    в конце, если вы все еще хотите подсчет участников, вы можете использовать это:

    =COUNTA(UNIQUE(A:A))