excel: vorrei aggiungere alla formula che estrae numeri casuali la possibilità di non estrarre 2 volte il solito numero.

Anonimo
2016-08-12T18:42:20+00:00

ho creato una tabella con tutti i giocatori della serie A, ad ognuno è stato assegnato un codice a questo punto ho creato la formula che mi permette di estrarre casualmente un codice tra quelli presenti nella tabella. il problema è che, soprattutto dopo averne estratti diversi e quando cioè ne iniziano a mancare pochi, il software continua ad estrarre giocatori già usciti! come posso fare a non estrarre due volte il solito codice?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2016-08-13T13:07:00+00:00

    Ciao, intanto grazie per la tempestività nel rispondere, a me purtroppo serve estrarre un giocatore alla volta. Spiego i passaggi:

    1. incollo la tabella con i calciatori (tabella comprendente codice, cognome, ruolo e squadra)
    2. creo in una casella la formula che mi estrae casualmente uno dei codici presenti nella tabella (sono 558 giocatori)

    3)nella casella sottostante ho la formula che mi permette dal codice estratto di trovare il nome il ruolo e le altre informazioni presenti nella tabella.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-08-12T22:11:28+00:00

    Ciao simobarre950,

    ho creato una tabella con tutti i giocatori della serie A, ad ognuno è stato assegnato un codice a questo punto ho creato la formula che mi permette di estrarre casualmente un codice tra quelli presenti nella tabella. il problema è che, soprattutto dopo averne estratti diversi e quando cioè ne iniziano a mancare pochi, il software continua ad estrarre giocatori già usciti! come posso fare a non estrarre due volte il solito codice?

    Occorre sapere se si tratti della estrazione in un colpo oppure in colpi successive.

    Nel primo caso, prova la seguente UDF (funzione utente):

    • Alt+F11 per aprire l'editor di VBA
    • Menù | Inserisci | Modulo (oppure Alt+IM) per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

    '=========>>

    Option Explicit

    '--------->>

    Public Function RandUnique(iMin As Long, _

                               iMax As Long, _

                               Campione As Long) _

                               As Variant()

        Dim arr() As Variant

        Dim i As Long, j As Long

        Dim iTemp As Long

        On Error GoTo XIT

        If iMin > iMax Or Campione > (iMax - iMin + 1) Then

            GoTo XIT

        End If

        ReDim arr(0 To iMax - iMin)

        For i = 0 To UBound(arr)

            arr(i) = iMin + i

        Next

        For i = 0 To UBound(arr)

            iTemp = arr(i)

            j = Int((iMax - iMin) * Rnd)

            arr(i) = arr(j)

            arr(j) = iTemp

        Next

        ReDim Preserve arr(0 To Campione - 1)

        RandUnique = arr

        Exit Function

    XIT:

        RandUnique = CVErr(xlErrNA)

    End Function

    '<<========= 

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel
    • Salva il file con l’estensione xlsm

    La UDF prende tre parametri, iMin, iMax e Campione. iMin è il codice minimo da utilizzare, iMax è il numero massimo da considerare e Campione è il numero di giocatore da estrarre. Ad esempio, se ci fossero 330 giocatori e ne volessi estrarre 15, dopo aver selezionato un intervallo di 15 celle in una riga, si immetterebbe la formula così:

            

    Questa funzione viene confermata in modo matriciale con Ctrl+Shift+Invio

    Per rendere i numeri estratti statici, bisognerebbe far una operazione di Copia | Incolla speciale | Valori.

    Potresti scaricare il mio file di prova Simo20160812.xlsm a:

    https://www.dropbox.com/s/51hc6xzn9zls14i/Simo20160812.xlsm?dl=0 

    Nota che in questa file, al fine di dimostrare le formule, non ho ancora 'fissato' i valori estratti e, pertanto, si cambieranno ad ogni ricalcolo.

    Però, se la tua intenzione fosse invece di estrarre i giocatori in più colpi, sarebbe opportuno fornire una spegazione dettagliata dei passi precisi.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento