Проверка изменения значения для уникальных значений в Excel - PullRequest
0 голосов
/ 04 марта 2020

Мой Excel выглядит следующим образом:

datestamp       page                revision    
2020-02-10      www.google.com      43218     
2020-02-10      www.yahoo.com       44476           
2020-02-10      www.bing.com        42357       

2020-02-11      www.google.com      43218   
2020-02-11      www.google.com      43219     
2020-02-11      www.yahoo.com       44477      
2020-02-11      www.yahoo.com       44477   
2020-02-11      www.bing.com        42358   
2020-02-11      www.yahoo.com       44478

Я хочу проверить, изменяется ли revision на page, и добавить значение TRUE, FALSE, чтобы данные выглядели так :

datestamp       page                revision        changes
2020-02-10      www.google.com      43218           FALSE ( because it's the first value and there is nothing to compare it with )
2020-02-10      www.yahoo.com       44476           FALSE ( because it's the first value and there is nothing to compare it with )
2020-02-10      www.bing.com        42357           FALSE ( because it's the first value and there is nothing to compare it with )

2020-02-11      www.google.com      43218           FALSE ( because previous revision value for google.com is the same - 43218 )
2020-02-11      www.google.com      43219           TRUE ( because previous revision value for google.com is different - 43218, and now its 43219 )
2020-02-11      www.yahoo.com       44477           TRUE ( because previous revision value for yahoo.com is different - 44476, and now its 44477 )
2020-02-11      www.yahoo.com       44477           FALSE ( because previous revision value for yahoo.com is the same - 44477 )
2020-02-11      www.bing.com        42358           TRUE ( because previous revision value for bing.com is different - 42357, and now its 42358 )
2020-02-11      www.yahoo.com       44478           TRUE ( because previous revision value for yahoo.com is different - 44477, and now its 44478 )

Как мне этого добиться? Спасибо за ваши предложения.

1 Ответ

1 голос
/ 04 марта 2020

В D2 попробуйте следующее:

=IF(C2<>"",IFERROR(LOOKUP(2,1/(B$1:B1=B2),C$1:C1)<>C2,FALSE),"")

Перетащите вниз.

Примечание: Начальные значения IF предназначены для проверки пустых значений. согласно вашим данным образца. Поцарапайте, если нет никаких пустых ячеек.


Office 365 - Dynami c Формулы массивов

Согласно комментарию OP, приведенное выше может вернуть #SPILL! ошибка. Поскольку я лично не имею доступа к этим функциям, следующее является лишь предположением, и было бы здорово, если бы кто-то мог подтвердить:

Взято с здесь :

С приходом динамических c формул массива неявное пересечение больше не играет время от времени. Так как LOOKUP отбрасывает все , но одно значение в формулах для не динамического c массива, оно больше не применяется в формулах для динамического c массива. Excel теперь поддерживает поиск нескольких значений и больше не выполняет скрытое пересечение без вывода сообщений. Если для возврата значений в сетку недостаточно места, вы увидите ошибку #SPILL. Поэтому нам нужно избежать этого поведения с помощью @:

=IFERROR(@LOOKUP(2,1/(B$1:B1=B2),C$1:C1)<>C2,FALSE)

В более старых версиях (таких как моя) это @ принято, но беззвучно удалено, поскольку неявное пересечение уже на месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...