Сначала добавьте строку заголовка над вашими данными, в строке 1, и пусть ваши данные начинаются со строки 2.
В ячейку C2 введите следующую формулу:
=IFERROR(IF(B2="s",A2-INDIRECT("A"&LOOKUP(2,1/($B$1:$B1="s"),ROW($B$1:$B1))),"-"),"n/a")
В ячейку D2 введите следующую формулу:
=IFERROR(IF(B2<>"s",A2-INDIRECT("A"&LOOKUP(2,1/($B$1:$B1<>"s"),ROW($B$1:$B1))),"-"),"n/a")
Заполните каждую формулу по всем строкам. Вы получите этот результат:
объяснение
Колонка C формула работает на первых проверки , если столбец В = "s", то он ищет lookup
столбец B вверх для предыдущего экземпляра "с", а затем использует номер строки этого экземпляра indirect
для ссылки на дату , относящуюся к нему, и выполняет дату суммы. Формула столбца D делает то же самое, за исключением совпадений с чем-либо, кроме "s".
Первый экземпляр "s" в столбце C и первый экземпляр «non-S» в столбце D приведут к ошибкам (потому что нет предыдущих данных), поэтому формулы окружены функциями iferror
, которые изменяют # N/ Ошибка приводит к получению более чистой строки (ячейки C4 и D2).
Если ваши данные не начинаются в верхнем левом углу
Если ваши данные не начинаются со строки 2, все равно вставьте вышеуказанные формулы в то место, где я говорю, а затем скопируйте и вставьте их туда, где они должны быть на вашем листе, и большинство ссылок на строки будут обновлены соответствующим образом - вам просто нужно измените экземпляры $1:
для соответствия строке заголовка (например, если строка заголовка равна 25, тогда экземпляры $1:
станут $25:
. Если ваши данные не начинаются в столбце А, вам необходимо вручную изменить буквы столбца в формулах. Например, если ваши данные начинаются в столбце F, измените каждый экземпляр A
на F
, а каждый экземпляр B
на G