KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come generare un valore casuale in base a una probabilità specificata in Excel?

AutoreSun Data di modifica

Quando lavori con Excel, potrebbe capitarti di dover generare valori casuali che rispecchino probabilità specifiche. Ad esempio, immagina di avere una tabella che elenca diversi possibili risultati insieme alle relative probabilità, come nell’immagine seguente.
dati di esempio

Questo scenario è comune nelle simulazioni aziendali, nella modellazione di progetti e in contesti didattici, quando si vuole che la selezione casuale rispecchi fedelmente le probabilità o le frequenze indicate dai dati.

Esigenze e casi d’uso tipici includono:

  • Simulare risposte a sondaggi o scelte dei clienti, in cui alcune opzioni hanno una probabilità maggiore di essere selezionate.
  • Genera set di dati di prova o estrazioni casuali per illustrare efficacemente i concetti di probabilità.
  • Automatizza i processi di selezione in cui ogni opzione ha una probabilità nota.
  • Progettazione di giochi e analisi del rischio, dove i risultati richiedono distribuzioni di probabilità specifiche.

Di seguito sono illustrati diversi metodi per generare valori casuali in base a probabilità assegnate in Excel, tra cui approcci basati su formule standard, un’automazione avanzata con VBA e l’utilizzo del componente aggiuntivo integrato Analisi dei dati.


Genera un valore casuale con probabilità

Excel offre una soluzione semplice e accessibile, basata su formule, per generare valori casuali in base a probabilità specifiche. Ideale per compiti rapidi, funziona interamente nei fogli di lavoro senza richiedere configurazioni particolari.

Prima di iniziare, assicurati che i valori siano elencati in una colonna (A2:A8) e che le relative probabilità — espresse come decimali compresi tra 0 e 1 — si trovino nella colonna adiacente (B2:B8). Le probabilità devono sommare esattamente a 1 per garantire precisione. Questa soluzione è perfetta per tabelle con un numero limitato e facilmente gestibile di valori.

1.In una colonna adiacente (a partire da C2), inserire la seguente formula per calcolare le probabilità cumulative:

=SUM($B$2:B2)

Trascina quindi questa formula verso il basso per estenderla a tutti i valori. In questo modo si creano intervalli cumulativi per ciascun valore, ideali per associare un numero casuale a un risultato specifico.
utilizza una formula per calcolare le percentuali cumulative

2.In una qualsiasi cella vuota (ad esempio D2), inserire la formula seguente per ottenere un valore casuale in base alla propria distribuzione di probabilità:

=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1)

Premere Invio per visualizzare un valore casuale. Ogni volta che si preme F9 (per ricalcolare) o quando i dati del foglio cambiano, apparirà un nuovo risultato.
applica una formula per generare un valore selezionato in modo casuale in base alle percentuali cumulative

Suggerimenti e precauzioni:

  • Le probabilità nella colonna B devono sommare esattamente a 1 (o al 100 % se si utilizzano percentuali; in tal caso, convertirle in decimali per le formule) per garantire una distribuzione equa.
  • Questa tecnica è perfetta per elenchi brevi. Con decine o centinaia di valori, tuttavia, le prestazioni potrebbero rallentare e la manutenzione diventare difficoltosa.
  • Se devi ripetere la selezione casuale per più estrazioni (ad esempio, per generare un lotto di risultati simulati), ti basta copiare la formula finale in un intervallo sottostante o adiacente.
  • Presta attenzione alle righe vuote e agli intervalli non corrispondenti, poiché potrebbero causare errori o risultati imprevisti.

Promemoria sugli errori: Se viene visualizzato un errore #RIF! o #VALORE!, assicurati che la colonna delle probabilità cumulative abbia la stessa lunghezza dei valori e che tutte le probabilità siano numeri validi.

uno screenshot di kutools for excel ai

Sblocca la magia di Excel con KUTOOLS AI

  • Esecuzione intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici, il tutto con comandi semplici e intuitivi.
  • Formule personalizzate: crea formule su misura per ottimizzare i tuoi flussi di lavoro.
  • Codifica VBA: Scrivi e implementa codice VBA in modo semplice e immediato.
  • Interpretazione delle formule: Comprendi con facilità anche le formule più complesse.
  • Traduzione del testo: Superate le barriere linguistiche direttamente nei vostri fogli di calcolo.
Potenzia le tue capacità in Excel con strumenti basati sull’intelligenza artificiale.Scarica orae scopri un’efficienza mai provata prima!

VBA: Genera valori casuali con probabilità assegnate

Per gli utenti che richiedono maggiore automazione o desiderano generare un volume elevato di valori casuali (ad esempio migliaia di campioni), Excel VBA offre una soluzione pratica, più rapida e flessibile rispetto alle formule nei fogli di lavoro. Questo metodo è particolarmente efficace con set di dati ampi o per produrre risultati casuali in blocco destinati a simulazioni.

1.Andare su Strumenti sviluppatore>Visual Basic, quindi nella finestra VBA fare clic su Inserisci>Moduloe incollare il codice seguente nel modulo:

Sub GenerateRandomWithProbability()
    Dim rngValues As Range
    Dim rngProbs As Range
    Dim n As Long
    Dim i As Long
    Dim cumProbs() As Double
    Dim valList() As Variant
    Dim randNum As Double
    Dim resultRange As Range
    Dim idx As Long
    
    ' On Error, ignore
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Select values
    Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
    
    ' Select probabilities
    Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
    
    ' Number of random values to generate
    n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
    
    ' Where to output
    Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
    
    If rngValues.Rows.Count <> rngProbs.Rows.Count Then
        MsgBox "Values and probabilities range must be the same size.", vbExclamation
        Exit Sub
    End If
    
    ReDim cumProbs(1 To rngValues.Count)
    ReDim valList(1 To rngValues.Count)
    
    ' Calculate cumulative probabilities
    cumProbs(1) = rngProbs.Cells(1, 1).Value
    valList(1) = rngValues.Cells(1, 1).Value
    
    For i = 2 To rngValues.Count
        cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
        valList(i) = rngValues.Cells(i, 1).Value
    Next i
    
    ' Generate random results
    For i = 1 To n
        randNum = Rnd
        For idx = 1 To UBound(cumProbs)
            If randNum <= cumProbs(idx) Then
                resultRange.Cells(i, 1).Value = valList(idx)
                Exit For
            End If
        Next idx
    Next i
End Sub

2. Nella finestra VBA, fai clic sul Pulsante Esegui pulsante di esecuzione per avviare il codice. Ti verrà chiesto, in sequenza, di selezionare l’intervallo dei valori, l’intervallo delle probabilità, il numero di valori casuali da generare e la cella iniziale di output. La macro riempirà rapidamente le celle di destinazione con valori casuali basati sulle probabilità assegnate.

  • È possibile ripetere questo processo per set di dati più ampi, e la colonna di output può essere personalizzata in qualsiasi foglio.
  • Se l’intervallo delle probabilità non somma a un valore molto prossimo a 1, il codice potrebbe alterare la distribuzione; convalida sempre le tue ipotesi.
  • Questa soluzione è ideale per il campionamento automatizzato, la simulazione e la generazione riproducibile di lotti.

Suggerimenti: Tieni valori e probabilità contigui e allineati in modo chiaro. Salva sempre il tuo lavoro prima di eseguire le macro, poiché le azioni VBA non possono essere annullate con Ripristina.


Articoli correlati:

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi