Формулы Excel: Показать итоги на основе ввода даты - PullRequest
0 голосов
/ 20 апреля 2009

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

33 4/1/2009
22 4/1/2009
12 4/2/2009
13 4/4/2009
36 04.04.2009

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

4/1/2009 55
02.04.2009 12
03.04.2009 0
04.04.2009 49

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

Есть идеи?

Спасибо! IVR Avenger

Ответы [ 3 ]

2 голосов
/ 20 апреля 2009

Я бы предложил использовать сводную таблицу. Поместите даты в область строк и «сумму» записей в области данных. Ничего в области столбцов.

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

2 голосов
/ 20 апреля 2009

Будет ли работать функция SUMIF у вас? SUMIF ([диапазон], [критерии], [сумма_ранж]) Я думаю, вы могли бы установить диапазон = набор ячеек, содержащих даты в вашем первом списке, критерии будут ячейкой, содержащей дату во втором списке, а сумма_ранж будет учитывается в первом столбце вашего первого списка.

0 голосов
/ 20 апреля 2009

Если ваши даты указаны в столбце B, а числа, которые нужно накапливать, указаны в A, вы можете попробовать что-то вроде этого:

  | A  |   B      |    C                D
1 | 33 | 4/1/2009 | =MIN(B:B) | {=SUM(IF(B1:B5=C1,A1:A5,0))} |
2 | 22 | 4/1/2009 | =C1+1     | {=SUM(IF(B1:B5=C2,A1:A5,0))} |
3 | 12 | 4/2/2009 | =C2+1     | {=SUM(IF(B1:B5=C3,A1:A5,0))} |
4 | 13 | 4/4/2009 | =C3+1     | {=SUM(IF(B1:B5=C4,A1:A5,0))} |
5 | 36 | 4/4/2009 | =C4+1     | {=SUM(IF(B1:B5=C5,A1:A5,0))} |

Обратите внимание на {}, который обозначает формулу массива (ввод с использованием Control-Shift-Enter) для любого нетривиального объема данных, который он накапливает быстрее, чем SUMIF ().

Я был бы склонен определять динамические имена для деталей A1: A5 и B1: B5, что-то вроде

=OFFSET(A1,0,0,COUNT(A:A),1)

чтобы мне не приходилось исправлять формулы.

Есть еще ручной элемент: например, добавление новых строк для дополнительных дат - это может быть хорошим местом для небольшого VBA. В качестве альтернативы, если вам не удастся показать, например, итоги последних 90 дней, вы можете зафиксировать количество используемых строк.

...