Страницы: 1
RSS
Подсчет количества ячеек по определенным месяцам из общего массива значений
 
добрый день!
подскажите, пожалуйста, формулу подсчета количества ячеек по определенным месяцам из общего массива значений.
необходимо подсчитать, сколько было условных единиц, например, в январе 2010, феврале 2010, марте 2013. условия и вид задачи - в приложении.
и вопрос - будет ли изменяться формула из решения задачи, если некоторые строки с датами будут отсуствовать, то есть в массиве значений будет не 30-31 строка месяца, а всего, например, 5-6 строк одного месяца.
заранее спасибо
Изменено: vikttur - 07.06.2021 14:00:30
 
Как-то так:
Код
=СУММЕСЛИМН($B$2:$B$171;$B$2:$B$171;">=1";$B$2:$B$171;"<=100";$A$2:$A$171;">="&C2;$A$2:$A$171;"<="&КОНМЕСЯЦА(C2;0))

Диапазон условных единиц задан от 1 до 100 (поправьте если надо больше).
Цитата

будет ли изменяться формула из решения задачи, если некоторые строки с датами будут отсуствовать, то есть в массиве значений будет не 30-31 строка месяца, а всего, например, 5-6 строк одного месяца
А вы проверьте и отпишитесь)

Upd
Только сейчас обратил внимание, что в соответствии с названием темы вам нужно количество ячеек.
В таком случае и формула будет другой:
Код
=СЧЁТЕСЛИМН($B$2:$B$171;"<>";$A$2:$A$171;">="&C2;$A$2:$A$171;"<="&КОНМЕСЯЦА(C2;0))
Изменено: memo - 04.06.2021 01:45:15 (Дополнение)
 
memo, все работает до того момента, как я вставляю в столбец "А" значения с разрывом по датам, то есть, не 30-31 строка с датами, а имеются "пропущенные" дни,  условно, 01.12.2019, 19.12.2019, 01.01.2020 и т.д.. кроме того, некоторых месяцев может не быть в целом
 
ghf, Я не понимаю, у вас написано:
Цитата
ghf написал:
подсчитать, сколько было условных единиц, например, в январе 2010, феврале 2010, марте 2013. условия и вид задачи - в приложении.
Указаны конкретные месяцы, и не важно есть там отсутствующие дни или нет, формула подсчитает количество значений для тех дней какие есть.
Кстати, в вашем последнем примере я не нашел данные за Январь и Февраль 2010 года, равно как и за Март 2013-го.
 
memo,спасибо, но у меня, возможно, глупый вопрос - формулы перестают считать, если я копирую столбец с датами из другого файла. формат ячеек такой же, как и в Вашем решении. не понимаю.
 
ghf,
Обратите внимание, у вас, в столбце С с критериями - даты с косыми чертами, а в столбце А с точками. Попробуйте выделить столбец А и через поиск и замену сменить точки на косые черты.
 
memo, я не понял, какие именно черточки вы имеете ввиду, но у меня в столбце "С" формат ячеек, условно - "март 2012". приведение ячеек к формату, который имеется у ячеек столбца "А" - "*14.03.2012" (условно), к положительному результату не привел.
 
ghf,
См. скриншоты. Столбец С и столбец А, разницу видите?
Изменено: memo - 07.06.2021 01:56:22
 
memo, я понимаю, о чем вы говорите, но в файле, который я загружал в последюю очередь  - месяцы (2).xlsx (131.33 К)  - в сообщении от 07.06.2021 00:37:08, формат именно такой, какой я описал
Цитата
ghf написал:
в столбце "С" формат ячеек, условно - "март 2012". приведение ячеек к формату, который имеется у ячеек столбца "А" - "*14.03.2012" (условно)
в строке формул отражаются даты что из столбца "А", что из столбца "С" - с точками
и формулы почему-то считают все на "0"
Изменено: ghf - 07.06.2021 19:05:15
 
Цитата
формулы почему-то считают все на "0"
Попробуйте макросом
Код
Sub Tablica()
Dim i As Long
Dim j As Long
Dim iLastRow As Long
Dim iLR As Long
Application.ScreenUpdating = False
 iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
 iLR = Cells(Rows.Count, "C").End(xlUp).Row
 Range("D2:D" & iLR).ClearContents
 For j = 2 To iLR
  For i = 2 To iLastRow
    If Val(Split(Cells(i, "A"), ".")(1)) = Month(Cells(j, "C")) And _
        Val(Split(Cells(i, "A"), ".")(2)) = Year(Cells(j, "C")) Then
       Cells(j, "D") = Cells(j, "D") + Cells(i, "B")
    End If
  Next
 Next
Application.ScreenUpdating = True
End Sub
 
Просто у вас текст в столбце А, который надо как-то преобразовать в дату.
Например так: =VALUE(SUBSTITUTE(A2; "."; "/"))
 
memo, спасибо, задача решена
Kuzmich,спасибо за вариант решения
Изменено: vikttur - 07.06.2021 20:38:41
Страницы: 1
Наверх