Формула Excel для определения идентификатора ячейки, когда ряд чисел становится отрицательным - PullRequest
4 голосов
/ 16 марта 2009

Пример данных

     A            B
1  Date        Amount
2  Apr 1        $6,000
3  May 1        $4,250
4  June 1       $2,750
5  July 1       $1,000
6  Aug 1       -$0.075   <- This Cell/Row
7  Sept 1     -$0.2500

В столбце чисел (в действительности 100-200 строк), когда значение меняется на отрицательное, например, если эти суммы мы должны по кредиту, когда кредит будет погашен. Обратите внимание, что реальная разница между цифрами колеблется в зависимости от процентов, налогов, разовых платежей и т. Д. Поэтому я не могу просто сосчитать (всего / оплата) = количество месяцев.

Есть ли способ использовать формулы Excel, чтобы определить это? Это может быть случай, когда требуется VBA (что нормально), но если я могу избежать этого, я бы хотел.

Ответы [ 3 ]

8 голосов
/ 16 марта 2009

Функция соответствия возвращает индекс диапазона

=MATCH(matchValue, range, matchType: 0=exact, 1=greater than, -1=less than


=MATCH(0, B2:B7, -1)

Соответствует первой ячейке, которая меньше 0 в диапазоне B2: B7. Из ваших данных выборки это будет 5

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

3 голосов
/ 17 марта 2009

Используйте формулу MATCH для определения номера строки.

=MATCH(lookup value, lookup range, lookup type)
=MATCH(0,B1:B7,-1)

Вам нужно будет использовать тип совпадения -1, так как ваши данные в порядке убывания. Этот параметр будет возвращать наименьшее значение, которое больше или равно значению поиска 0.

На основании ваших данных это вернет номер строки 5 . Вы ожидаете увидеть номер строки 6 , поэтому формула должна быть расширена следующим образом.

=MATCH(0,B1:B7,-1)+1

Чтобы определить идентификатор ячейки, вам нужно заключить эту формулу в формулу ADDRESS .

=ADDRESS(Row number, Column number)
=ADDRESS(MATCH(0,B1:B7,-1)+1,2)

Это вернет значение $ B $ 6

Возможно, было бы более полезно вернуть соответствующую дату или значение. Это можно сделать с помощью формулы OFFSET .

=OFFSET(A1,MATCH(0,B1:B7,-1),0)
=OFFSET(A1,MATCH(0,B1:B7,-1),1)

Первая формула будет возвращать дату в A6, 1 августа

Вторая формула вернет значение в B6, - $ 0,075

1 голос
/ 16 марта 2009

Я не уверен, что ты хочешь сделать.

Если вы хотите избежать отрицательного числа, вы можете сделать:

=IF(YOUR_CELL_ACTUAL_FORMULA < 0 , 0, YOUR_CELL_ACTUAL_FORMULA)

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

=MATCH(0, YOUR_AMOUNT_RANGE, -1)

Это даст вам номер первой строки, когда сумма будет отрицательной.

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