Формула Excel для расчета разности ч / б 1-е значение и последнее значение в столбце (Excel)? - PullRequest
3 голосов
/ 27 августа 2011

У меня есть следующие столбцы: (с помощью формулы Excel)

     A            B
  ------------------------
1 |  Date     |   Value  |
  ------------------------
2 | 8/20/2011 |   92.8   |
3 | 8/21/2011 |   92.4   |
4 | 8/22/2011 |   91.8   |
5 | 8/23/2011 |   90.7   |
6 | 8/24/2011 |   91.1   |
7 | 8/25/2011 |          |
8 | 8/26/2011 |          |
9 | 8/27/2011 |          |
  ------------------------

Я хочу рассчитать разницу между 1-м значением (B2) и последним значением (последней заполненной строкой в ​​столбце B)

Отредактировано:

Использование формулы: =B2-B6 - это не то, что требуется.(Я хочу, чтобы diff в ячейке C2)

Я хочу, чтобы, когда пользователь вводит значение в B7, он автоматически показывает разницу между B2 и B7, когда он заполняет B8, тогда он показывает разницу между B2 и B8 и так далее..

Я не хочу, чтобы какой-то прямой метод делал это в Excel, а не путем итерации всех значений для проверки последнего значения.Пожалуйста, предложите лучший способ для этого в Excel.

Это скорее логическая проблема!

Добро пожаловать в решение Pure Excel, я могу сделать это вручную.

Отредактировано: Использование формулы Excel!

Надеюсь, я правильно объяснил свою проблему ..

Ответы [ 4 ]

5 голосов
/ 27 августа 2011

Если заголовки в A1 и B1, а ваша таблица, например, A2: B9, используйте формулу:

=$B$2-OFFSET($B$2,COUNTA($B$2:$B$9)-1,0,1,1)
2 голосов
/ 29 октября 2014

Чтобы найти последнее число в столбце, вы можете использовать VLOOKUP в одном столбце, где 1E + 99 - это lookup_value , а для необязательного range_lookup оставлено значение по умолчанию. Данные не должны быть отсортированы.

1008 *

Формула в C2: =VLOOKUP(1E+99,$B$2:$B$99,1)-B2. Аналогично, вы можете найти последнее непустое буквенное значение с помощью =VLOOKUP("zzzzz",$E$2:$E$99,1) (пример в F2).

Чтобы найти последнее непустое значение, где есть смешанные буквенные и числовые значения, используйте INDEX и примените MAX к MATCH, например. =INDEX(E2:E99,MAX(IFERROR(MATCH(1E+99,E2:E99),0),IFERROR(MATCH("zzzz",E2:E99),0))). Любую из этих формул можно легко скорректировать, чтобы она возвращала значение из другого столбца, соответствующее последнему значению в столбце поиска.

0 голосов
/ 28 августа 2011

Еще один менее изящный способ сделать это только с помощью формул Excel - это использовать вспомогательный столбец, который является телескопической серией.

В столбце C2 введите 0. В столбцах C3 используйте формулу

=IF(B3="",0,B2-B3)

Скопируйте длину таблицы.Внизу суммируйте все в столбце помощника.

0 голосов
/ 27 августа 2011

Я понимаю, что вы не ищете решение pure Excel, но вы можете использовать его по-другому >> вы можете добавить формулу Excel с помощью vb / vba.

Что-то вроде =B7-$B$2 - необходимая формула.

Таким образом, вы можете сделать что-то вроде:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    Target.Offset(0, 1).Formula = "=" & Target.Address & "-$B$2"
End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...