Обчисліть кількість неділей у місяці


8

У Microsoft Excel я шукаю визначити кількість неділей у будь-якому місяці. Я складаю електронну таблицю бюджету, і деякі з субрахунків отримують додаткове фінансування, коли п'ять неділь у місяці замість чотирьох.

Єдина клітинка, на яку я маю посилатися, - це заголовок аркуша, який знаходиться в комірці А1 і дорівнює поточному місяцю. Наприклад6/1/14

Відповіді:


12

Спробуйте це там, де A1починається день місяця:

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))),"ddd")="Sun"))

Ви також можете використовувати це для будь-якого дня тижня, просто змінити "Sun"та будь-який діапазон дат, замінивши A1дату початку та EOMONTH(A1,0)дату закінчення.


1
Ого. Це справді творчо. Дозвольте мені зрозуміти. Ми створюємо значення дати за весь місяць за допомогою непрямих та рядкових функцій? Потім ми перетворюємо їх у текст у вигляді Сонця, Пн і т. Д. Ми оцінюємо стан ВС і змінюємо результат на одиницю або нуль, а потім підсумовуємо результат. Це правильно?
wbeard52

так саме .. :)
Jay-ar

9

Якщо дата, яку ви згадуєте, завжди перша в місяці, то ця також буде спрацьовувати:

=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)

Простий. Дуже елегантно порівняно з моєю формулою вище. Дякую.
wbeard52

3

Дуже схожа на попередню відповідь, але трохи трішки чистіша ...

=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))

2
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)

EDIT: Це працює в Excel 2016, не впевнений, коли було введено NETWORKDAYS.INTL.


Що таке Networkdays.Intl, він не працює з усіма
перевагами

Ах, ви праві. Я не бачив, щоб він мав на увазі Excel 2010. Я маю 2016. На відміну від networkdays, Networkdays.intl дозволяє вибирати вихідні. У цьому випадку я сказав Excel, що вихідні - це лише неділя, це те, що означає 11. Отже, це дає вам кількість днів за період, не враховуючи неділю.
SRCP

1

Я вважаю, що я знайшов ще один спосіб зіштувати цю кішку (так би мовити).

Якщо ви хочете уникати введення дат і маєте великий аркуш для прогнозування (наприклад, 18 місяців), замість цього ви можете просто сказати формулі, який ваш місяць та рік, і чи правильно їх відформатувати. Це поєднується з абсолютною посиланням на комірки заголовка, що містить день тижня, про який йдеться, і ви маєте набагато більш компактну та чистішу таблицю (на мою думку).

A3 = січень, B3 = 2017, C2: I2 = 3-кратне скорочення (тобто SUN)

Введіть формулу в комірку С3

=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$2))

Щасливі полювання


0

Незначна варіація прийнятої відповіді , де вам не потрібен перший день місяця в 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"))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.