Excel - Hari dan Tanggal Bulan


0

Saya telah mencoba beberapa formula "Tanggal" tetapi saya tidak bisa menjalankannya.

Ini masalah saya:

Saya ingin menyiapkan spreadsheet yang memungkinkan pengguna mengetik A1 - bulan dan tahun.

Saya ingin spreadsheet saya secara otomatis mengisi Kolom A dengan "Hari" pada bulan itu misalnya, jika bulan itu dimulai pada hari Rabu, maka hari Rabu akan menjadi hari pertama. Saya kemudian ingin kolom B untuk mengisi tanggal misalnya 01/12/2018 (format UK).

Juga, saya ingin hari Minggu dihilangkan. Saya memiliki versi manual ini di mana saya harus mengetikkan nilai-nilai setiap bulan tetapi saya ingin mengotomatiskannya karena ini harus dilakukan 80 kali dan saya tidak ingin harus mengisi terlebih dahulu secara manual, kemudian salin dan tempel 79 waktu.

Ada saran?


seperti apa bentuk format A1? Okt 2018, 10/18, beberapa variasi lain? Atau mungkin tanggal untuk bulan pertama? 18/10/01? jika format angka sedang digunakan, dan bulannya sebelum Oktober apakah akan ada 0 sebelumnya? 01/18 atau 1/18?
Penerusan Ed

Jawaban:


1

Dengan asumsi Anda memasukkan sel A1 untuk bulan dan tahun adalah entri numerik seperti 01/18, 1/18, 01/2018, atau 1/2018, Anda dapat menggunakan rumus berikut untuk mengembangkan daftar Anda.

Mulailah dengan menempatkan formula berikut di B3.

=DATE(RIGHT(A1,LEN(A1)-FIND("/",A1)),LEFT(A1,FIND("/",A1)-1),1)+(WEEKDAY(DATE(RIGHT(A1,LEN(A1)-FIND("/",A1)),LEFT(A1,FIND("/",A1)-1),1))=1)

Kelihatannya agak rumit tapi itu karena mencoba menangani 4 kemungkinan entri tanggal yang berbeda di A1. Jika Anda memiliki format entri tanggal yang berbeda, formula lain akan diperlukan untuk mengembangkan tanggal untuk bulan pertama.

Dalam rumus di atas, ia pada dasarnya menemukan "/" dan menggunakan posisinya untuk menentukan berapa banyak string yang harus dirobek untuk meraih angka masing-masing untuk bulan dan tahun. Setelah meraih digit untuk bulan dan tahun, informasi tersebut dimasukkan ke dalam rumus DATE yang mencari informasi dalam format berikut:

=DATE(year, month, day)

Karena diketahui bahwa tanggal adalah awal bulan yang sedang diselidiki, setel hari = 1. Bagian selanjutnya dari persamaan WEEKDAY menentukan hari dalam seminggu. JIKA hari dalam minggu adalah MINGGU hari pertama dalam bulan tersebut perlu ditingkatkan sebesar 1. Karena hasil boolean dari TRUE adalah setara dengan 1 dalam operasi matematika excel dan FALSE adalah EQUIVALENT dari 0, tambahan sederhana dari WEEKDAY () = 1 dibuat dengan rumus untuk menentukan yang pertama bulan.

Setelah Anda memiliki seed untuk memulai daftar Anda, Anda perlu menambahkan 1 ke tanggal untuk baris berikutnya, dan menambahkan 1 tambahan ke tanggal adalah baris di atas adalah hari Sabtu. Selain itu Anda ingin memastikan nilai tanggal baru Anda tidak melebihi akhir bulan, dan untuk prosedur saya, saya juga ingin memastikan baris di atas tidak kosong. Gunakan rumus berikut dalam B4 dan salin cukup jauh untuk memastikan Anda mencakup jumlah maksimum tanggal yang mungkin.

=IF(B3<>"",IF(B3+1+(WEEKDAY(B3)=7)>EOMONTH($B$3,0),"",B3+1+(WEEKDAY(B3)=7)),"")

Itu akan menghasilkan daftar tanggal melewatkan hari Minggu.

Anda memiliki beberapa opsi untuk menunjukkan hari dalam seminggu. Opsi 1 adalah melakukannya dengan formula. Pada dasarnya rumus berikut akan mengambil tanggal dari kolom B dan dan memformat nilai untuk menampilkan hari dalam seminggu hanya sebagai string. Di A3 gunakan rumus berikut dan salin:

=TEXT(B3,"DDDD")

OR

=IF(B3<>"",TEXT(B3,"DDDD"),"")

Persamaan kedua akan menampilkan kosong jika Anda menyalin formla turun melewati rumus di B dan berakhir referensi sel kosong, bukan sel yang mengandung "".

POC


1

Masukkan nilai seperti "3 2020" di sel A1 dan jalankan:

Sub INeedDates()
    Dim A1 As Range: Set A1 = Range("A1")
    Dim d As Date, i As Long

    i = 2
    arr = Split(A1, " ")
    d = DateSerial(arr(1), arr(0), 1)

    While CInt(Month(d)) = CInt(arr(0))
        If Format(d, "dddd") <> "Sunday" Then
            Cells(i, "A").Value = Format(d, "dddd")
            Cells(i, "B").Value = d
            Cells(i, "B").NumberFormat = "d/m/yyyy"
            i = i + 1
        End If
        d = d + 1
    Wend
End Sub

masukkan deskripsi gambar di sini


0

Ketika saya melakukan (secara samar-samar) hal-hal yang serupa, saya biasanya memilih untuk memisahkan input Bulan dan Tahun, agar tetap super sederhana agar orang lain dapat menggunakannya nanti. (Saya telah melihat sejumlah besar orang yang mengalami kesulitan memasukkan tanggal dengan benar di Excel.)

Saya merekomendasikan pengaturan berikut: (Maaf tentang jeda baris, beberapa rumus ini terlalu panjang untuk satu baris dalam tabel ini.)

╔════╦═════════════════════════════════════════════════╦════════════════════════════════╗
CELL                   DATA/FORMULA                                 COMMENTS         
╠════╬═════════════════════════════════════════════════╬════════════════════════════════╣
                                                                                     
 A1   "Month"                                         Locked cell with bold, centered
                                                      text, yellow fill, and red bor-║
                                                      der on left, right & top sides 
                                                                                     
 B1   "Year"                                          Locked cell with bold, centered
                                                      text, yellow fill, and red bor-║
                                                      der on left, right & top sides 
                                                                                     
 A2   11                                              Unlocked cell with Data Valid- 
                                                      ation requiring a whole number 
                                                      from 1 to 12 (inclusive), right
                                                      justified with red border on   
                                                      left, right & bottom sides     
                                                                                     
 B2   2018                                            Unlocked cell with Data Valid- 
                                                      ation requiring a whole number 
                                                      from 1 to 12 (inclusive), left 
                                                      justified with red border on   
                                                      left, right & bottom sides     
                                                                                     
 A3   "Day"                                           Locked cell, formatted as      
                                                      heading to below table         
                                                                                     
 B3   "Date"                                          Locked cell, formatted as      
                                                      heading to below table         
                                                                                     
 A4   =IF(B4="","",TEXT(B4, "DDDD"))                  This shows the name of the day 
                                                      of the date found in cell B4   
                                                                                     
 B4  =IF(WEEKDAY(DATE(B2, A2, 1))-1, DATE(B2, A2, 1),║ This picks the date of the 1st 
      DATE(B2, A2, 2))                                day of the month chosen above, 
                                                      unless it's a Sunday, then it  ║
                                                      is the following day (Monday)  
                                                                                     
 A5   Copy A4 to these cells                          As you copy A4 to these cells  
 to                                                   Excel will automatically alter 
 A29                                                  each to reference the cell in  
                                                      column B of this row           
                                                                                     
 B5  =IF(B4="","",IF(IF(WEEKDAY(B4+1)-1,B4+1,B4+2)>=  This picks the date after B4   
     EOMONTH(B4,0),"",IF(WEEKDAY(B4+1)-1,B4+1,B4+2)))║ unless it's a Saturday, then it║
                                                      picks the next Monday, unless  
                                                      it would go into the next month
                                                                                     
 B6   Copy B5 to these cells                          As you copy B5 to these cells, 
 to                                                   Excel will automatically alter 
 B29                                                  each one to reference the cell 
                                                      above it instead of B4         
╚════╩═════════════════════════════════════════════════╩════════════════════════════════╝

Dan inilah tangkapan layarnya dalam aksi:
Tabel di Excel menampilkan hari selain hari Minggu pada bulan November 2018 dalam format 'nama hari' dan 'tanggal'.


-2

Bukan solusi yang paling apik, tetapi cepat dan mudah. Jika Anda memasukkan hari pertama bulan itu di sel A1, maka di A2 tambahkan rumus ini ....

=IF(TEXT(A1,"DDDD")="Sunday",A1+1,A1)
then A3
=IF(TEXT(A2+1,"DDDD")="Sunday",A2+2,A2+1)

Anda kemudian dapat menyalin formula itu dari sana. Itu membuat hari Minggu keluar dari daftar Anda. Satu-satunya hari Minggu yang akan muncul adalah yang mungkin Anda masukkan di sel A1. Saya menguji ini untuk September 2019 karena yang pertama adalah hari Minggu. Ia kembali

02/09/2019
03/09/2019
04/09/2019
05/09/2019
06/09/2019
07/09/2019
09/09/2019

Semoga itu bisa membantu.

Brad


daripada mengkonversi ke string, menggunakan weekdayakan jauh lebih efisien
phuclv
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.