Кажется, что есть несколько шагов к этому.
Прежде всего, вы можете захотеть создать динамический диапазон - именованный диапазон облегчит ваш синтаксис окончательной формулы - определить целевую область предыдущегоИдентификаторы DASЕсть много веб-сайтов, которые объясняют, как это сделать (используя OFFSET()
или INDEX()
, и один из них будет следующим: https://www.excel -easy.com / examples / dynamic-named-range.html .
Таким образом, предполагая, что ваши данные начинаются с A2 и нет пустых строк, вы можете добавить именованный диапазон, скажем, DASIDs
с этой формулой в своем окне «Относится к»:
= СМЕЩЕНИЕ (Лист1! $ A 1,0,0, COUNTA (Лист1! $ A: $ A) -1,1)
Обратите внимание на -1
чтобы исключить самую нижнюю ячейку, в которую вы вводите данные.
Затем добавьте второй именованный диапазон, который ссылается на последнюю строку DASID (для этого примера я назвал ее LastDASID
) с помощьюформула:
= СМЕЩЕНИЕ (Лист1! $ A $ 1, COUNTA (Лист1! $ A: $ A) -1,0,1,1)
Опять же,-1
предотвращает смещение формулы за пределы ваших данных.
Чтобы прочитать последний элемент в списке, есть известная формула, которая использует SUMPRODUCT()
(вот объяснение http://www.exceluser.com/formulas/last-item-in-list.htm).
Таким образом, вы можете добавить третий названный диапазон, называемый MatchedDASIDRow
, остроумиеh формула:
= SUMPRODUCT (MAX (ROW (DASIDs) * (LastDASID = DASIDs)))
Итак, последний шаг заключается в добавлении правила условного форматированияв ячейке A2, тип правила которой Use a formula to determine which cells to format
, и выберите любое форматирование по вашему желанию.Описание правила - это просто объединение первых трех шагов:
= MatchedDASIDRow = ROW (A2)
Просто перетащите это условное форматирование по всем строкам и столбцамваша область данных, и вы должны быть в порядке.
Обновление от комментария
Я думаю, что вы могли бы пойти на решение VBA, поскольку ваши комментарии наводят на мысль одовольно сложное требование анализа.Тем не менее, это можно сделать с помощью формул.Хитрость заключается в том, чтобы найти, где заканчиваются предыдущие данные и начинаются новые.При условии, что ваши данные вводятся в порядке изменения даты, вы можете различать диапазоны по столбцу изменения даты.
Сначала получите динамический диапазон измененного столбца.Я использовал именованный диапазон с именем AllModifiedRange
и использовал формулу:
= OFFSET (Sheet1! $ C $ 1,0,0, COUNTA (Sheet1! $ C: $ C), 1)
Далее определите формулу, которая идентифицирует последнюю строку данных, дата изменения которой предшествует сегодняшнему дню.Я назвал этот именованный диапазон PriorModifiedsLastRow
с формулой:
= SUMPRODUCT (MAX (ROW (AllModifiedRange) * (TODAY () <> AllModifiedRange)))
Это позволяет вам определить диапазон DASID до сегодняшнего дня.Именованный диапазон с именем PriorDASIDs
с формулой:
= OFFSET (Sheet1! $ A 1,0,0 $, PriorModifiedsLastRow, 1)
Теперь вам просто нужноформула, как и прежде, чтобы проверить, соответствует ли строка последней строке.Другой именованный диапазон называется IsPriorLastRow
с формулой:
= ROW (Sheet1! $ A2) = SUMPRODUCT (MAX (ROW (PriorDASID)) * (Sheet1! $ A2 = PriorDASIDs)))
Однако при этом будет выделен любой из последних DASID.Вам понадобится второй тест, чтобы определить, существует ли DASID в сегодняшнем измененном диапазоне.
Итак, сначала определите этот диапазон.Я использовал другой именованный диапазон, TodaysModifiedRange
с формулой:
= OFFSET (Sheet1! $ A $ 1, PriorModifiedsLastRow, 0, COUNTA (Sheet1! $ A: $ A) -PriorModifiedsLastRow,1)
и затем запустите тест.Именованный диапазон с именем IsInTodaysModifieds
с формулой:
= НЕ (ISNA (MATCH (Sheet1! $ A2, TodaysModifiedRange, 0)))
Итак, ваша формула условного форматированияпросто видит, соответствуют ли оба теста истине:
= AND (IsPriorLastRow, IsInTodaysModifieds)
Как я уже сказал, это зависит от того, какой модифицированный диапазон отсортирован по дате, и, если вы введете один и тот же DASID дважды в один и тот же день, алгоритм потерпит неудачу.Лично я бы пошел в VBA, но если вы хотите остаться с формулами Excel и хотите повысить степень сложности, вам нужно продумать свои шаги и разработать формулы структурированным образом.