Определение даты, связанной с отрицательным значением

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

Есть несколько способов решения этой проблемы. Все методы предполагают, что даты в столбце A расположены в возрастающем порядке и что значения в столбце B не находятся в каком-либо различимом порядке. (Другими словами, показания могут колебаться выше и ниже 0 в любую заданную дату.)

При условии, что у вас есть некоторый контроль над макетом рабочего листа, вы можете добавить промежуточный рабочий столбец в столбец C, используется для обозначения отрицательного значения. Просто поместите такую ​​формулу в столбец C справа от каждого значения:

= IF (B1

Эта формула возвращает дата в столбце A, если значение в B меньше 0 (отрицательное), в противном случае ничего не возвращает. Все, что вам нужно сделать, это найти минимальное значение в столбце C:

= MIN (C: C)

Отформатируйте результат как дату, и он представляет дату, когда показания впервые стали отрицательными.

Другой подход — отказаться от использования промежуточного столбца и использовать формулу массива для определения даты. Предполагая, что данные находятся в диапазоне A1: B42, вы можете использовать любую из следующих формул:

= MIN (IF (B1: B42 Помните, что это все формулы массива, поэтому вам нужно ввести любую из них, которую вы выберете, нажав Shift + Ctrl + Enter . Отформатируйте результат как дату, и это будет ответ, который вы ищете.

Если хотите, вы также можете использовать простой макрос для определения даты:

Функция GetFirstNegative (rngdata) Dim c как вариант для каждого c в rngdata Если c

На рабочем листе вы можете использовать эту пользовательскую функцию следующим образом:

= GetFirstNegative (B1: B42)

Источник: frestage.ru

Бытовой вопрос