Inserimento di date nell’ultimo mese (Microsoft Excel)
Kathy ha bisogno di una formula che cambierà qualsiasi data nel mese corrente nell’ultimo giorno del mese precedente. Nota anche che sarebbe utile avere una macro VBA che potrebbe farlo per le date in un intervallo di celle selezionate.
Esistono in realtà diversi approcci formulari diversi che potresti utilizzare per derivare la data desiderata. Questi due sono i più corti e facili da usare:
=A1-DAY(A1) =EOMONTH(A1,-1)
Il primo funziona perché il “giorno 0” del mese corrente è sempre considerato l’ultimo giorno del mese precedente. Pertanto, se la data nella cella A1 è 9/25/20, si finisce per sottrarre 25 (il valore GIORNO) da quel giorno, fornendo una data di 9/0/20 o 8/31/20.
La seconda formula funziona a causa dell’inclusione del secondo parametro per la funzione EOMONTH. Questo parametro viene utilizzato per indicare quanti mesi nel passato (negativo) o futuro (positivo) deve essere calcolata la fine del mese.
In entrambi i casi, potrebbe essere necessario formattare la cella contenente la formula come data. In caso contrario, quello che vedi potrebbe essere il numero di serie sottostante utilizzato da Excel per calcolare le date.
Se vuoi una macro che converta effettivamente le date in un intervallo selezionato nell’ultimo giorno del mese precedente, quanto segue farà il trucco.
Sub LastDayPreviousMonth() Dim rCell As Range For Each rCell In Selection If IsDate(rCell) And Not rCell.HasFormula Then rCell.Value = WorksheetFunction.EoMonth(rCell.Value, -1) End If Next rCell End Sub
La macro passa attraverso ogni cella nell’intervallo selezionato e verifica se contiene una data e non è una formula. (In altre parole, se la data in una cella è il risultato di una formula, la formula non viene modificata.)
La funzione EOMONTH viene quindi utilizzata, come precedentemente descritto, per calcolare la data desiderata.
Va detto che l’approccio macro convertirà anche le date testuali. Ad esempio, se una cella contiene, come testo, la data “6/15/20”,
quindi la macro lo cambierà in 5/30/20. Una volta che la data modificata viene reinserita nella cella, verrà visualizzata come numero di serie di data / ora, non come testo.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (13304) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.