Turinys
Šiandienos tinklaraščio įraše kalbama apie skirtumo tarp dviejų datų nustatymą "Google" lentelėse. Pamatysite daug DATEDIF formulių, skirtų dienoms, mėnesiams ir metams skaičiuoti, ir sužinosite, kaip NETWORKDAYS naudojamas skaičiuoti tik darbo dienas, net jei jūsų atostogos pagrįstos pasirinktiniu grafiku.
Daugeliui skaičiuoklių naudotojų tvarkyti datas atrodo painu, o gal net labai sudėtinga. Tačiau tikite ar ne, bet tam yra keletas patogių ir paprastų funkcijų. DATEDIF ir NETWORKDAYS yra kelios iš jų.
DATEDIF funkcija "Google Sheets
Kaip ir funkcijų atveju, jų pavadinimai nurodo veiksmą. Tas pats pasakytina ir apie DATEDIF. data dif , o ne data, jei , o jis reiškia datų skirtumas . Taigi, "Google Sheets" funkcija DATEDIF apskaičiuoja dviejų datų skirtumą.
Išskaidykime ją į dalis. Funkcijai reikalingi trys argumentai:
=DATEDIF(pradžios_data, pabaigos_data, vienetas)- start_date - data, naudojama kaip pradžios taškas. Tai turi būti viena iš šių datų:
- pačią datą dvigubomis kabutėmis: "8/13/2020"
- nuoroda į ląstelę su data: A2
- formulę, kuri grąžina datą: DATA(2020, 8, 13)
- skaičius, kuris reiškia tam tikrą datą ir kurį "Google Sheets" gali interpretuoti kaip datą, pvz. 44056 yra . 2020 m. rugpjūčio 13 d. .
- end_date - data, naudojama kaip galinis taškas. Ji turi būti tokio paties formato kaip start_date .
- vienetas - naudojamas funkcijai nurodyti, kokį skirtumą grąžinti. Čia pateikiamas visas galimų naudoti vienetų sąrašas:
- "D" - (trumpinys dienos ) grąžinamas dienų skaičius tarp dviejų datų.
- "M" - (mėnesiais) pilnų mėnesių skaičius tarp dviejų datų.
- "Y" - (metai) visų metų skaičius.
- "MD" - (dienos, neatsižvelgiant į mėnesius) dienų skaičius atėmus pilnus mėnesius.
- "YD" - (dienos, neatsižvelgiant į metus) dienų skaičius atėmus ištisus metus.
- "YM" - (mėnesiai, neatsižvelgiant į metus) pilnų mėnesių skaičius atėmus pilnus metus.
Pastaba. Visi vienetai į formules turi būti įrašomi taip pat, kaip ir aukščiau - dvigubomis kabutėmis.
Dabar sujungkime visas šias dalis ir pažiūrėkime, kaip DATEDIF formulės veikia "Google Sheets".
Dienų tarp dviejų datų skaičiavimas "Google" lentelėse
1 pavyzdys. Suskaičiuokite visas dienas
Turiu nedidelę lentelę kai kuriems užsakymams sekti. Visi jie buvo išsiųsti rugpjūčio pirmoje pusėje - Pristatymo data - kuri bus mano darbo pradžios data. Taip pat yra apytikslė pristatymo data - Terminas .
Ketinu skaičiuoti dienas - "D" - tarp išsiuntimo ir mokėjimo terminų, kad sužinotumėte, per kiek laiko prekės bus pristatytos. Čia pateikiama formulė, kurią turėčiau naudoti:
=DATEDIF(B2, C2, "D")
Įvedu DATEDIF formulę į D2 ir nukopijuoju ją į stulpelį, kad pritaikytumėte kitoms eilutėms.
Patarimas. Visada galite apskaičiuoti visą stulpelį iš karto naudodami vieną formulę, naudodami ARRAYFORMULA:
=ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))
2 pavyzdys. Skaičiuokite dienas ignoruodami mėnesius
Įsivaizduokite, kad tarp dviejų datų yra keli mėnesiai:
Kaip skaičiuoti tik dienas, tarsi jos priklausytų tam pačiam mėnesiui? Teisingai: neatsižvelgiant į praėjusius pilnus mėnesius. DATEDIF tai apskaičiuoja automatiškai, kai naudojate "MD" vienetas:
=DATEDIF(A2, B2, "MD")
Funkcija atima praėjusius mėnesius ir skaičiuoja likusias dienas.
3 pavyzdys. Skaičiuokite dienas ignoruodami metus
Kitas vienetas - "YD" - bus skirtas padėti, kai tarp datų bus daugiau nei vieneri metai:
=DATEDIF(A2, B2, "YD")
Pagal formulę pirmiausia atimami metai, o paskui likusios dienos apskaičiuojamos taip, tarsi jos priklausytų tiems patiems metams.
Darbo dienų skaičiavimas "Google Sheets
Yra ypatingas atvejis, kai "Google" lentelėse reikia skaičiuoti tik darbo dienas. DATEDIF formulės šiuo atveju nelabai padės. Ir, manau, sutiksite, kad rankiniu būdu atimti savaitgalius nėra pats elegantiškiausias variantas.
Laimei, "Google Sheets" turi keletą ne tokių stebuklingų burtų :)
1 pavyzdys. NETWORKDAYS funkcija
Pirmoji funkcija vadinasi NETWORKDAYS. Ši funkcija apskaičiuoja darbo dienų skaičių tarp dviejų datų, neįskaitant savaitgalių (šeštadienio ir sekmadienio) ir net švenčių dienų, jei reikia:
=NETWORKDAYS(pradžios_data, pabaigos_data, [šventės])- start_date - data, naudojama kaip atskaitos taškas. Reikalinga.
Pastaba. Jei ši data nėra nedarbo diena, ji laikoma darbo diena.
- end_date - data, naudojama kaip galinis taškas. Reikalinga.
Pastaba. Jei ši data nėra nedarbo diena, ji laikoma darbo diena.
- atostogos - šis punktas neprivalomas, kai reikia nurodyti konkrečias šventes. Tai turi būti datų intervalas arba datas žymintys skaičiai.
Kad parodyčiau, kaip tai veikia, pridėsiu sąrašą švenčių, kurios vyksta tarp siuntimo ir mokėjimo terminų:
Taigi, B stulpelyje yra mano pradžios data, C stulpelyje - pabaigos data. E stulpelyje esančios datos yra šventės, į kurias reikia atsižvelgti. Štai kaip turėtų atrodyti formulė:
=NETWORKDAYS(B2, C2, $E$2:$E$4)
Patarimas. Jei ketinate nukopijuoti formulę į kitas ląsteles, atostogoms naudokite absoliučias ląstelių nuorodas, kad išvengtumėte klaidų ar neteisingų rezultatų. Arba apsvarstykite galimybę vietoj to sukurti masyvo formulę.
Ar pastebėjote, kaip sumažėjo dienų skaičius, palyginti su DATEDIF formulėmis? Nes dabar funkcija automatiškai atima visus šeštadienius, sekmadienius ir dvi švenčių dienas, kurios būna penktadienį ir pirmadienį.
Pastaba. Skirtingai nei "Google Sheets" programoje DATEDIF, NETWORKDAYS skaičiuoja start_day ir end_day kaip darbo dienos, išskyrus atvejus, kai jos yra švenčių dienos. Taigi D7 grąžina 1 .
2 pavyzdys. "Google Sheets" NETWORKDAYS.INTL
Jei turite individualų savaitgalių tvarkaraštį, jums pravers kita funkcija: NETWORKDAYS.INTL. Ji leidžia skaičiuoti darbo dienas "Google Sheets" pagal asmeniškai nustatytus savaitgalius:
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])- start_date - data, naudojama kaip atskaitos taškas. Reikalinga.
- end_date - data, naudojama kaip galinis taškas. Reikalinga.
Pastaba. NETWORKDAYS.INTL "Google Sheets" taip pat skaičiuojamas start_day ir end_day kaip darbo dienos, išskyrus atvejus, kai jos yra švenčių dienos.
- savaitgalis - Šis punktas yra neprivalomas. Jei jis praleidžiamas, šeštadienis ir sekmadienis laikomi savaitgaliais. Tačiau tai galima pakeisti dviem būdais:
- Kaukės .
Patarimas. Šis būdas puikiai tinka, kai jūsų laisvos dienos išsibarsčiusios per visą savaitę.
Kaukė - tai septynių skaitmenų raštas iš 1 ir 0. 1 reiškia savaitgalį, 0 - darbo dieną. Pirmasis raštelio skaitmuo visada yra pirmadienis, paskutinis - sekmadienis.
Pavyzdžiui, "1100110" reiškia, kad dirbate trečiadienį, ketvirtadienį, penktadienį ir šeštadienį.
Pastaba. Kaukė turi būti pateikiama dvigubomis kabutėmis.
- Skaičiai .
Naudokite vienženklius skaičius (1-7), žyminčius rinkinio savaitgalių porą:
Numeris Savaitgalis 1 Šeštadienis, sekmadienis 2 Sekmadienis, pirmadienis 3 Pirmadienis, antradienis 4 Antradienis, trečiadienis 5 Trečiadienis, ketvirtadienis 6 Ketvirtadienis, penktadienis 7 Penktadienis, šeštadienis Arba dirbkite su dviženkliais skaičiais (11-17), kurie reiškia vieną poilsio dieną per savaitę:
Numeris Savaitgalio diena 11 Sekmadienis 12 Pirmadienis 13 Antradienis 14 Trečiadienis 15 Ketvirtadienis 16 Penktadienis 17 Šeštadienis
- Kaukės .
- atostogos - jis taip pat neprivalomas ir naudojamas atostogoms nurodyti.
Ši funkcija gali atrodyti sudėtinga dėl visų tų skaičių, bet raginu pabandyti.
Pirmiausia aiškiai supraskite savo laisvas dienas. Sekmadienis ir Pirmadienis . Tada nuspręskite, kaip nurodysite savo savaitgalius.
Jei naudosite kaukę, ji bus tokia - 1000001 :
=NETWORKDAYS.INTL(B2, C2, "1000001")
Bet kadangi turiu dvi savaitgalio dienas iš eilės, galiu naudoti skaičių iš pirmiau pateiktų lentelių, 2 mano atveju:
=NETWORKDAYS.INTL(B2, C2, 2)
Tada tiesiog pridėkite paskutinį argumentą - nuorodą į atostogas E stulpelyje, ir formulė paruošta:
=NETWORKDAYS.INTL(B2, C2, 2, $E$2:$E$4)
"Google" lentelės ir datų skirtumas mėnesiais
Kartais mėnesiai yra svarbesni už dienas. Jei taip yra ir norite gauti datos skirtumą mėnesiais, o ne dienomis, leiskite "Google Sheets" DATEDIF atlikti šį darbą.
1 pavyzdys. Pilnų mėnesių skaičius tarp dviejų datų
Įrankis yra tas pats: start_date pirma eina, o po to end_date ir "M" - kuris stovi kelis mėnesius - kaip galutinis argumentas:
=DATEDIF(A2, B2, "M")
Patarimas: nepamirškite funkcijos ARRAUFORMULA, kuri gali padėti suskaičiuoti mėnesius visose eilutėse vienu metu:
=ARRAYFORMULA(DATEDIF(A2:A13, B2:B13, "M"))
2 pavyzdys. Mėnesių skaičius ignoruojant metus
Gali būti, kad jums nereikia skaičiuoti mėnesių per visus metus tarp pradžios ir pabaigos datų. DATEDIF leidžia tai daryti.
Tiesiog naudokite "YM" vienetą, o formulė pirmiausia atims ištisus metus ir tada suskaičiuos mėnesius tarp datų:
=DATEDIF(A2, B2, "YM")
Metų tarp dviejų datų skaičiavimas "Google" lentelėse
Paskutinis (bet ne mažiau svarbus) dalykas, kurį noriu parodyti, yra tai, kaip "Google Sheets" DATEDIF apskaičiuoja datos skirtumą metais.
Apskaičiuosiu, kiek metų poros yra susituokusios, remdamasis jų vestuvių datomis ir šiandienos data:
Kaip jau spėjote, aš naudosiu "Y" vienetą:
=DATEDIF(A2, B2, "Y")
Visos šios DATEDIF formulės yra pirmosios, kurias reikia išbandyti norint apskaičiuoti dienas, mėnesius ir metus tarp dviejų datų "Google" lentelėse.
Jei jūsų atvejo nepavyksta išspręsti šiais būdais arba turite klausimų, kviečiu jais pasidalyti toliau pateiktame komentarų skyriuje.