D1 — начало периода
D2 — конец периода
Option Explicit
Private Sub KolDays()
Dim i As Long
Dim j As Long
Dim n As Integer
Dim a
a = Array(«Пн», «Вт», «Ср», «Чт», «Пт», «Сб», «Вс»)
Range(«D3:D9»).ClearContents
j = 0
For i = CDate(Range(«D1»)) To CDate(Range(«D2»))
n = Weekday(Range(«D1») + j, 2)
Select Case n
Case «1»
Cells(3, 4) = Cells(3, 4) + 1
Case «2»
Cells(4, 4) = Cells(4, 4) + 1
Case «3»
Cells(5, 4) = Cells(5, 4) + 1
Case «4»
Cells(6, 4) = Cells(6, 4) + 1
Case «5»
Cells(7, 4) = Cells(7, 4) + 1
Case «6»
Cells(8, 4) = Cells(8, 4) + 1
Case «7»
Cells(9, 4) = Cells(9, 4) + 1
End Select
j = j + 1
Next i
Cells(3, 3).Resize(UBound(a) + 1) = Application.Transpose(a)
End Sub
0 / 0 / 0 Регистрация: 12.04.2011 Сообщений: 4 |
|
1 |
|
Вычислить количество суббот и воскресений в периоде12.04.2011, 16:33. Показов 26113. Ответов 6
Добрый день!
0 |
671 / 177 / 10 Регистрация: 28.07.2010 Сообщений: 253 |
|
12.04.2011, 17:55 |
2 |
Вот такая вот формула получилась: Код =СУММПРОИЗВ(СУММЕСЛИ(B1;ДЕНЬНЕД(СТРОКА(ИНДЕКС(A:A;A$1):ИНДЕКС(A:A;A$2));2)))/B1 где: Код =СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(ИНДЕКС(A:A;A$1):ИНДЕКС(A:A;A$2));2)=B1))
0 |
0 / 0 / 0 Регистрация: 12.04.2011 Сообщений: 4 |
|
13.04.2011, 11:03 [ТС] |
3 |
Я так понимаю эта формула подходит, если прописан весь период, который надо посчитать?
0 |
671 / 177 / 10 Регистрация: 28.07.2010 Сообщений: 253 |
|
13.04.2011, 12:52 |
4 |
где: Где здесь сказано про весь период?
1 |
0 / 0 / 0 Регистрация: 12.04.2011 Сообщений: 4 |
|
13.04.2011, 17:51 [ТС] |
5 |
Спасибо, огромное!!! Просто неправильно вбила даты))) Добавлено через 39 минут
0 |
671 / 177 / 10 Регистрация: 28.07.2010 Сообщений: 253 |
|
13.04.2011, 18:08 |
6 |
Можно так: Код =A2-A1+1-СУММПРОИЗВ(СЧЁТЕСЛИ(E1:E8;СТРОКА(ИНДЕКС(A:A;A$1):ИНДЕКС(A:A;A$2)))) где
2 |
0 / 0 / 0 Регистрация: 12.04.2011 Сообщений: 4 |
|
13.04.2011, 18:39 [ТС] |
7 |
СПАСИБО ОГРОМНОЕ!!!
0 |
В следующей статье подробно описано, как вычислить число 7-го числа, воскресенья или любого другого дня в Excel разными способами.
Пример: Для следующей таблицы данных рассчитайте количество суббот, воскресений и понедельников.
Рассчитать можно двумя способами:
Способ 1. Используйте функцию Weekday ().
1. Подсчитайте количество воскресений.
— В ячейке D5 введите выписку, как показано. Подобно операторам cop для оставшихся ячеек в столбце D.
— Примечание: Составьте таблицу соответствующих значений элементов в таблице ниже. Воскресное значение = 1, поэтому при сравнении «= 1».
2. Подсчитайте количество дней 7
— В ячейке E5 введите выписку, как показано. Здесь день 7 имеет значение = 7, поэтому сравните weekday () со значением 7 -> Скопируйте формулу для оставшихся ячеек.
3. Подсчитайте количество дней 2
В ячейке F5 введите команду, как показано. Здесь второе значение 2 должно сравнивать Weekday () со значением 2.
Результат:
Вы можете открыть календарь, чтобы проверить.
Метод 2: используйте функцию Int ().
1. Подсчитайте количество воскресений.
— В ячейке E5 введите выписку, как показано. Воскресенье здесь 1, поэтому вычитаем 1.
2. Подсчитайте количество дней 7
— В ячейке D5 введите выписку, как показано. Здесь суббота имеет значение 7, поэтому при вычитании вычитается 7.
3. Подсчитайте количество дней 2
— В ячейке F5 введите команду, как показано. Понедельник имеет значение 2, поэтому вычтите 2.
=> Результаты рассчитываются двумя способами:
Примечание: Вы можете рассчитать количество дней в любом порядке, вам просто нужно изменить соответствующее значение элемента в формуле.
Удачи!
Иногда нам нужно знать, сколько конкретных дней недели между двумя датами. Например, у меня есть две даты: дата начала — 1, дата окончания — 1, теперь я хочу знать, сколько раз в этот период происходит воскресенье, понедельник или вторник и т. Д. Возможно, для нас это несколько сложно, но здесь я могу рассказать о некоторых эффективных методах для вас.
- Подсчитайте количество определенных будних / выходных дней между двумя датами
- Используйте формулу для подсчета количества определенных дней недели в месяце
- Используйте VAB для подсчета количества определенных дней недели в месяце
- Подсчитайте числа всех выходных / будних дней / определенного дня недели между двумя датами
Подсчитайте количество определенных будних / выходных дней между двумя датами с помощью формулы
Предположим, у меня есть следующие две даты, и мне нужно посчитать, сколько воскресений между ними. Выберите пустую ячейку, введите формулу ниже и нажмите Enter ключ. И теперь вы получите количество воскресений между двумя датами. Смотрите скриншот:
=INT((WEEKDAY($C$2- 1)-$C$2+$C3)/7)
Ноты:
(1) В приведенной выше формуле C2 — это дата начала, а C3 — дата окончания.
(2) В приведенной выше формуле 1 означает воскресенье. И вы можете заменить цифру 1 другими цифрами от 1 до 7. (1 — воскресенье, 2 — понедельник, 3 — вторник, 4 — среда, 5 — четверг, 6 — пятница и 7 — суббота.)
Используйте формулу для подсчета количества определенных дней недели в месяце
Иногда вам может потребоваться подсчитать общее количество дней недели в данном месяце, например, подсчитать общее количество дней в среду в июле 2020 года. Здесь я представлю формулу для подсчета общего количества дней недели в указанном месяц легко.
Выберите пустую ячейку, введите формулу ниже и нажмите клавишу Enter, чтобы получить результат подсчета.
=INT((WEEKDAY(DATE(G2,G3,1)- G4)-DATE(G2,G3,1)+EOMONTH(DATE(G2,G3,1),0))/7)
Заметки:
(1) В приведенной выше формуле G2 — это указанный год, G3 — указанный месяц, а G4 — указанный день недели.
(2) Эта формула присваивает целые числа для представления дня недели: 1 — воскресенье, 2 — понедельник, 3 — вторник, 4 — среда, 5 — четверг, 6 — пятница и 7 — суббота.
Используйте функцию, определяемую пользователем, для подсчета количества определенных будних / выходных дней в данном месяце
Вы также можете создать функцию, определяемую пользователем, чтобы вычислить, сколько конкретных дней недели в данном году и месяце, помимо приведенной выше формулы.
1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Public Function TotalDays(pYear As Integer, pMonth As Integer, pDay As Integer)
'Update 20140210
Dim xindex As Integer
Dim endDate As Integer
endDate = Day(DateSerial(pYear, pMonth + 1, 0))
For xindex = 1 To endDate
If Weekday(DateSerial(pYear, pMonth, xindex)) = pDay Then
TotalDays = TotalDays + 1
End If
Next
End Function
3. Сохраните этот код и вернитесь на рабочий лист, затем в пустой ячейке введите эту формулу = Всего дней (год, месяц, 1) . В этом примере я подсчитаю, сколько воскресений будет в июне 2020 года, поэтому я могу применить эту формулу как одну из формул ниже., Затем нажмите Enter ключ, и вы получите, сколько воскресений сразу. см. скриншоты:
= Всего дней (C2, C3, C4)
= Всего дней (2020,6,1)
Ноты: В этих формулах для обозначения дня недели используются целые числа: 1 — воскресенье, 2 — понедельник, 3 — вторник, 4 — среда, 5 — четверг, 6 — пятница и 7 — суббота..
Подсчитайте количество всех выходных/будних дней/конкретного дня недели между двумя датами с помощью Kutools for Excel
На самом деле, мы можем подать заявку Kutools for Excel’s Количество нерабочих дней между двумя датами формула, Количество рабочих дней между двумя датами формула и Подсчитайте количество определенного дня недели формула для быстрого подсчета числа всех выходных, выходных или определенного дня недели в диапазоне дат в Excel.
1. Выберите пустую ячейку, в которую вы поместите результат подсчета, и нажмите Kutools> Помощник по формулам> Помощник по формулам, чтобы включить эту функцию.
А затем продолжайте, основываясь на ваших типах подсчета.
A. Подсчитайте количество выходных (суббота и воскресенье) между двумя датами в Excel.
В диалоговом окне Помощник по формулам сделайте следующее:
(1) Выберите Статистический из Тип формулы раскрывающийся список;
(2) Щелкните, чтобы выбрать Количество нерабочих дней между двумя датами в Выберите формулу список;
(3) Введите дату начала в Дата начала поле (можно также указать ячейку даты);
(4) Введите дату окончания в Дата окончания поле (можно также указать ячейку даты);
(5) Щелкните значок OK кнопку.
Теперь он возвращает общее количество всех суббот и воскресений в выбранной ячейке.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Б. Подсчитайте количество дней недели (кроме субботы и воскресенья) между двумя датами в Excel.
В диалоговом окне Помощник по формулам сделайте следующее:
(1) Выберите Статистический из Тип формулы раскрывающийся список;
(2) Щелкните, чтобы выбрать Количество рабочих дней между двумя датами в Выберите формулу список;
(3) Введите дату начала в Дата начала поле (можно также указать ячейку даты);
(4) Введите дату окончания в Дата окончания поле (можно также указать ячейку даты);
(5) Щелкните значок OK кнопку.
Затем он возвращает общее количество рабочих дней (исключая субботу и воскресенье) в выбранной ячейке.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
C. Подсчитайте количество определенного дня недели (понедельник, суббота, воскресенье и т. Д.) Между двумя датами в Excel.
В диалоговом окне Помощник по формулам сделайте следующее:
(1) Выберите Статистический из Тип формулы раскрывающийся список;
(2) Щелкните, чтобы выбрать Подсчитайте количество определенного дня недели в Выберите формулу список;
(3) Введите дату начала в Дата начала поле (можно также указать ячейку даты);
(4) Введите дату окончания в Дата окончания поле (можно также указать ячейку даты);
(5) Укажите конкретный день недели с помощью целого числа (1 означает воскресенье, 2–5 означает понедельник — пятницу, а 7 — субботу.);
(6) Щелкните значок OK кнопку.
Затем он возвращает общее количество дней недели в заданном диапазоне дат.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Статьи по теме:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
в Microsoft Excel я ищу, чтобы определить количество воскресений в любой месяц. Я составляю таблицу бюджета, и некоторые из субсчетов получают дополнительное финансирование, когда пять воскресений в месяце вместо четырех.
единственная ячейка, на которую я должен ссылаться, — это заголовок листа, который находится в ячейке A1 и равен текущему месяцу. Например 6/1/14
источник
попробуйте это где A1
— день начала месяца:
=SUMPRODUCT(N(TEXT(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))),"ddd")="Sun"))
вы также можете использовать это в любой день недели просто изменить "Sun"
и любой диапазон дат, заменив A1
С «дата начала» и EOMONTH(A1,0)
С датой окончания.
отвечен Jay-ar 2016-05-12 01:55:39
источник
Если дата, которую вы упоминаете, всегда первая из месяца, то этот также будет работать:
=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)
отвечен teylyn 2014-06-19 02:20:09
источник
очень похож на предыдущий ответ, но немного чище…
=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))
источник
Я думаю, что нашел еще один способ освежевать эту кошку (так сказать).
Если вы хотите избежать ввода дат и иметь большой лист для проекции (например, 18 месяцев), тогда вы можете просто сказать формуле, что такое ваш месяц и год, и отформатировать его соответствующим образом. Это вместе с абсолютная ссылка на ячейки заголовка, которая содержит день недели и у вас есть гораздо более компактные и чище стол (в моем мнение.)
A3 = Jan, B3= 2017, C2: I2= аббревиатура 3 Char Day (т. е. SUN)
введите формулу в ячейку C3
=SUMPRODUCT(N(TEXT(ROW(INDIRECT(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy"))&":"&EOMONTH(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy")),0))),"ddd")=C))
Счастливая Охота
источник
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)
изменить: это работает в Excel 2016, не уверен, когда NETWORKDAYS.Был введен международный.
отвечен SRCP 2018-01-10 01:14:26
источник
небольшое изменение принято отвечать, где вам не нужен первый день месяца в A1
.
Это достигается заменой A1
С:
date(year(today()),month(today()),1)
это при условии, что вы хотите за текущий месяц.
=SUMPRODUCT(N(TEXT(ROW(INDIRECT(date(year(today()),month(today()),1)&":"&EOMONTH(date(year(today()),month(today()),1),0))),"ddd")="Sun"))
отвечен CalvT 2018-01-10 01:10:24
источник