У меня есть проект, для которого я должен создать автоматизированную электронную таблицу. Первый лист содержит введенные человеком данные. Например, предположим, что человек вводит сумму Х того, что он получил на дату ХХ / ХХ / ХХ (используйте текст в столбцах в Excel, затем с разделителями, затем нажмите вкладку, пробел и завершите).
       11/19/2015   11/20/2015  11/25/2015  11/30/15    1/2/2016
Apples    4             5           2           7           1
Bananas   6             4           5           7           3
Oranges   3             0           4           0           0
Теперь это все введенные пользователем данные. Из этих данных, введенных пользователем, мне нужен второй лист для отображения еженедельной даты (даты, которая является субботой, определяющей неделю) и суммы всех вещей, полученных за эту неделю. Вот что мне нужно для отображения листа 2 из введенных пользователем данных:
        11/21/2015  11/28/2015  1/2/2016
Total      22           11         4
Apples      9            2         1
Bananas    10            5         3
Oranges     3            4         0
Если вы можете заметить, 19.11.2015 и 20.11.2015 приходится на неделю с 21.11.2015, то есть 21.11.2015 отображается только в одной ячейке, а все вещи за эту неделю суммируются. Даты, введенные пользователем, могут быть как можно дальше друг от друга, поэтому я включил 1/2/2016.
Теперь выяснить формулу для сумм должно быть проще, но у меня проблема с отображением еженедельной даты один раз.Одна из вещей, которая может произойти, - то, что пользователь по ошибке вводит одну и ту же дату дважды. Я проверил это с помощью формулы:
=IF(IFERROR(MODE.SNGL(1:1)>=1,0),"CHECK DATES",__________)
Первая недельная ячейка даты проста, так как она отвечает на первую введенную пользователем дату. Просто:
=IF(IFERROR(MODE.SNGL(1:1)>=1,0),"CHECK DATES",B1-weekday(B1)+7)
Таким образом, проблема заключается в том, что следующая дата НЕ отображается снова 21.11.2015.
ОБНОВЛЕНИЕ После некоторого поиска в Google моя проблема в основном такая же, как найти k-ое по величине число, чем указанное число. К счастью, было много сайтов, которые давали мне полезную информацию. Итоговая формула, которую я придумал для отображения недельных дат, следующих за первой недельной датой:
=IF(IFERROR(MODE.SNGL(1:1)>=1,0),"CHECK DATES",IFERROR(LARGE(1:1,COUNTIF(1:1,">"&B17))-WEEKDAY(LARGE(1:1,COUNTIF(1:1,">"&B17)))+7,""))
Эта формула также позволяет ячейкам, следующим за последней недельной датой, отображать "", что можно изменить, чтобы отобразить значение # N/A, если необходимо. Теперь перейдем к правильному суммированию.
