Skip to main content

Kutools per Office — Una Suite. Cinque Strumenti. Ottieni di Più.

Come calcolare la percentuale tra due date in Excel?

Author Xiaoyang Last modified

Quando si gestiscono progetti in corso o si monitora l'avanzamento delle attività pianificate in Excel, è spesso necessario calcolare quale parte della durata di un'attività sia trascorsa in base alla data odierna. Questo ti permette di valutare se i progetti sono in anticipo, in linea o in ritardo rispetto alla tabella di marcia, esprimendo il tempo trascorso come percentuale della durata totale pianificata. Ad esempio, potresti avere un foglio di lavoro con attività, ognuna con le proprie date di inizio e fine. Vorrai sapere, a partire da oggi, quale percentuale del periodo pianificato per ciascuna attività è passata. Questa guida ti illustrerà metodi pratici per raggiungere questo obiettivo in Excel, delineando modi per automatizzare l'aggiornamento delle percentuali di avanzamento e mostrando come evidenziare visivamente le attività basandoti su questi risultati utilizzando la formattazione condizionale.

La seguente schermata mostra un elenco di attività di esempio con una data di inizio, una data di fine e la percentuale di completamento calcolata desiderata:

calculate the percentage between two dates


Calcola la percentuale di completamento tra due date con una formula

Per calcolare la percentuale di completamento di un'attività tra due date, puoi utilizzare una formula basata sulle funzioni DATEDIF e TODAY di Excel. Questo approccio è adatto quando hai un numero limitato di attività e il tuo set di dati non cambia frequentemente.

1. Inserisci la seguente formula in una cella vuota nella riga dove vuoi vedere il risultato (ad esempio, nella cella D2):

=(DATEDIF(B2,TODAY(),"d")+1)/(DATEDIF(B2,C2,"d")+1)

Spiegazione dei parametri:
B2 è la cella con la data di inizio dell'attività, e C2 è la cella con la data di fine. TODAY() restituisce automaticamente la data odierna, quindi la formula calcola quanti giorni sono passati dall'inizio dell'attività, divisi per la lunghezza totale pianificata dell'attività.

2. Dopo aver inserito la formula, trascina la maniglia di riempimento verso il basso per copiare la formula per tutte le righe necessarie. Ogni riga mostrerà quindi il completamento corrente dell'attività in base alla data odierna. L'esempio seguente dimostra questo applicato a diverse attività:

3. Seleziona tutte le celle calcolate. Vai alla scheda Home, quindi fai clic sul pulsante Stile Percentuale nel gruppo Numero per visualizzare i valori come percentuali anziché decimali. Puoi ulteriormente regolare il numero di posizioni decimali utilizzando i pulsanti Aumenta Decimali e Diminuisci Decimali per ottenere la precisione desiderata.

format the cell values as percentage format

Attenzione: Questo approccio è molto flessibile, ma devi assicurarti che tutte le celle delle date siano formattate come date effettive in Excel; altrimenti, potrebbero verificarsi errori o valori errati.

Se desideri che i risultati si aggiornino automaticamente ogni giorno, TODAY() garantisce che ogni volta che la cartella di lavoro viene ricalcolata o aperta, la percentuale rifletta l'avanzamento corrente. Tuttavia, tieni presente che se fai riferimento a valori statici inseriti manualmente (invece di TODAY()), dovrai aggiornare manualmente quelle date man mano che il tempo passa.


Codice VBA – Automatizza il calcolo della percentuale per aggiornamenti dinamici su righe e date

Se il tuo foglio di lavoro contiene molte attività con date di inizio e fine definite, puoi utilizzare VBA per calcolare automaticamente la percentuale di avanzamento per ciascuna attività in base alla data odierna. Questo metodo è utile quando vuoi aggiornare dinamicamente l'avanzamento delle attività attraverso le righe senza dover inserire manualmente le formule. La macro scorre ogni riga, confronta la data odierna con le date di inizio e fine delle attività e calcola il tempo trascorso come percentuale della durata totale. Il risultato viene poi inserito in una colonna di destinazione, fornendo una panoramica rapida del livello di avanzamento di ciascuna attività.

1. Premi Alt + F11 per aprire l'editor Microsoft Visual Basic for Applications. Nell'editor VBA, vai su Inserisci > Modulo per creare un nuovo modulo, quindi incolla il seguente codice al suo interno:

Sub UpdateTaskCompletionPercent()
'Updated by Extendoffice 20250724
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim StartDateCol As String, EndDateCol As String, PercentCol As String
    Dim startDate As Variant, endDate As Variant, todayDate As Date
    Dim pct As Double
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = Application.ActiveSheet
    
    ' Adjust these column letters as needed
    StartDateCol = "B"
    EndDateCol = "C"
    PercentCol = "D"
    
    todayDate = Date
    lastRow = ws.Cells(ws.Rows.Count, StartDateCol).End(xlUp).Row
    
    For i = 2 To lastRow ' Skip header
        startDate = ws.Cells(i, StartDateCol).Value
        endDate = ws.Cells(i, EndDateCol).Value
        
        If IsDate(startDate) And IsDate(endDate) Then
            If endDate >= startDate Then
                If todayDate < startDate Then
                    pct = 0
                ElseIf todayDate >= endDate Then
                    pct = 1
                Else
                    pct = (todayDate - startDate + 1) / (endDate - startDate + 1)
                End If
                ws.Cells(i, PercentCol).Value = pct
                ws.Cells(i, PercentCol).NumberFormat = "0.00%"
            Else
                ws.Cells(i, PercentCol).Value = "Invalid dates"
            End If
        Else
            ws.Cells(i, PercentCol).Value = "Date error"
        End If
    Next i
End Sub

2. Dopo aver inserito il codice, premi F5 (o fai clic sul Run button pulsante Esegui) per eseguire lo script. Questa operazione batch compilerà immediatamente la colonna delle percentuali (D) per ogni riga in base alle date attuali.

Note e risoluzione dei problemi:

  • Se i tuoi dati delle attività si trovano in colonne diverse, regola StartDateCol, EndDateCol e PercentCol nel codice per adattarli al layout del tuo foglio.
  • Se lo script visualizza "Errore data" o "Date non valide", controlla la presenza di righe vuote, voci di data errate o date di inizio/fine sovrapposte/errate.
  • Questo approccio garantisce che i calcoli delle percentuali rimangano accurati e aggiornati per tutte le attività, specialmente dopo modifiche massive ai dati o quando si importa da altre fonti.

Questa soluzione VBA è pratica per preparazioni dati ricorrenti e report automatizzati dove copiare manualmente le formule sarebbe inefficiente.



Altri articoli relativi alla percentuale:

  • Calcola il prezzo originale dallo sconto percentuale
  • Di solito, nella nostra vita quotidiana, ci sono alcuni prodotti che sono scontati nei centri commerciali. Se hai il prezzo scontato e la percentuale di sconto come mostrato nello screenshot seguente, come potresti calcolare il prezzo originale di quel prodotto in Excel?
  • Calcola la percentuale dell'anno o del mese trascorsi
  • Supponiamo di avere un elenco di date in un foglio di lavoro, ora vorresti ottenere la percentuale dell'anno o del mese che è trascorsa o rimanente in base alla data specificata. Come potresti risolvere questo problema in Excel?
  • Conteggio per calcolare la percentuale in Excel
  • Ad esempio, ho un rapporto di sintesi di un documento di ricerca, e ci sono tre opzioni A, B, C, ora voglio calcolare la percentuale di ciascuna di queste tre opzioni. Vale a dire, ho bisogno di sapere quanto l'opzione A rappresenta la percentuale di tutte le opzioni. In questo articolo, parlerò di come ottenere la percentuale di una specifica opzione in un intervallo.

  • Barra delle formule super (modifica facilmente più righe di testo e formule); Layout di lettura (leggi ed edita facilmente un gran numero di celle); Incolla in un intervallo filtrato...
  • Unisci celle/righe/colonne mantenendo i dati; Dividi il contenuto delle celle; Combina righe duplicate e somma/media... Prevenire celle duplicate; Confronta intervalli...
  • Seleziona righe duplicate o uniche; Seleziona righe vuote (tutte le celle sono vuote); Super Trova e Trova approssimativa in molte cartelle di lavoro; Selezione casuale...
  • Copia esatta di più celle senza cambiare il riferimento della formula; Crea automaticamente riferimenti a più fogli; Inserisci punti elenco, caselle di controllo e altro...
  • Preferiti e inserimento rapido di formule, intervalli, grafici e immagini; Crittografa celle con password; Crea elenco di invio e invia email...
  • Estrai testo, aggiungi testo, rimuovi caratteri in una posizione specifica, rimuovi spazio; Crea e stampa statistiche pagina dati; Converti tra contenuto delle celle e commenti...
  • Super Filtri (salva e applica schemi di filtro ad altri fogli); Ordinamento avanzato per mese/settimana/giorno, frequenza e altro; Filtro speciale per grassetto, corsivo...
  • Unisci cartelle di lavoro e fogli di lavoro; Unisci tabelle basandoti su colonne chiave; Suddividi dati in più fogli; Conversione batch di xls, xlsx e PDF...
  • Raggruppamento tabella pivot per numero di settimana, giorno della settimana e altro... Mostra celle sbloccate, celle bloccate con colori diversi; Evidenziazione celle che hanno formula/nome...
kte tab 201905
  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea documenti multipli in nuove schede della stessa finestra, anziché in nuove finestre.
  • Aumenta la tua produttività del 50%, e riduce centinaia di clic del mouse ogni giorno!
officetab bottom