Trovare numero mancante in una lista



  • Trovare numero mancante in una lista
    di Alessandro (utente non iscritto) data: 14/08/2015 21:12:39

    Salve
    Vorrei trovare il numero mancante in una lista di numeri messi in colonna verticale in ordine crescente da 1a 90..

    Nuova discussione correlata clicca qui




  • di scossa data: 14/08/2015 21:43:26

    cit.: "Datemi una soluzione"

    Magari chiedere "per favore" .......


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.
    (George Bernard Shaw)



  • di Vecchio Frac data: 14/08/2015 21:54:11

    Una possibile soluzione:
    - trascrivi i numeri da 1 a 90 su un foglio di carta;
    - scorri i numeri dell'elenco leggendoli ad alta voce uno per uno;
    - per ogni numero letto, cancelli il corrispondente numero dal foglio di carta;
    - alla fine il numero non cancellato sarà il numero cercato.

    Un'altra possibile soluzione:
    - nella soluzione precedente invece del foglio di carta usa la colonna di Excel a fianco dell'originale.

    p.s. questa risposta non è una battuta. Sono proposte di un algoritmo efficace, semplice e veloce per risolvere il problema.





  • di cromagno data: 14/08/2015 22:19:43

    Ciao a tutti...

    @Alessandro
    dovresti sforzarti a dare qualche dettaglio (è buona norma allegare il file in questione!).
    Tornando a noi...
    il numero mancante può essere più di uno?
    E' una lista che crei tu o è importata in qualche modo e potrebbero mancare numeri?
    Insomma, soluzioni ce ne sono 1000 (compresa quello di Vecchio Frac ), ma sii più dettagliato.
    Ciao



  • di ninai data: 15/08/2015 12:05:22

    vedendo l'esempio che hai fatto in uno dei post duplicati:
    se hai i numeri in A1:A200, in una cella metti:
    =CONFRONTA(FALSO;INDICE(VAL.NUMERO(CONFRONTA(RIF.RIGA(A1:A90);A1:A200;0)););0)

    ma non credo sia la soluzione più "fluida" e neanche che la leggerai (sospetto che sei già "volato" via).



  • di patel data: 15/08/2015 12:46:57

    se non sbaglio va bene se un solo numero è mancante





  • di cromagno data: 15/08/2015 13:21:11

    Ormai la domanda risulterà ugualmente nello storico, tanto vale mettere qualche soluzione...
    Una potrebbe essere con la formattazione condizionale, da mettere in una tabella contenente i numeri da 1 a 90 (tipo "lotto" per capirci).
    La formula sarebbe:
    =NON(VAL.ERRORE(CONFRONTA(D5;$A$2:$A$101;0))) applicata a tutta la tabella $D$5:$M$13

    file allegato....



  • di ninai data: 15/08/2015 14:05:14

    Se vi sono mancanze multiple (più di un numero), la mia precedente si potrebbe modificare in:
    =SE.ERRORE(PICCOLO(SE(VAL.ERRORE(CONFRONTA(RIF.RIGA($A$1:$A$90);$A$1:$A$200;0));RIF.RIGA($A$1:$A$90));RIF.RIGA(A1));"")

    Matriciale, da trascinare in basso.

    allego file con generazione di numeri casuali in A1:A200


  • Trovare numero mancante
    di A.bunetto (utente non iscritto) data: 15/08/2015 14:22:47

    Ciao!!
    Intanto grazie infinite per la disponibilità e pazienza....Si potrebbe esserci più di un numero mancante...però io essendo un novellino in Excel vorrei per favore una risposta più dettagliata con le procedure...cioè come e dove va inserita la formula....cmq i numeri sono per il 10elotto...
    Faccio un altro es:
    1
    1
    1
    2
    2
    4
    4
    5
    6
    6
    7
    7
    7
    8
    9
    10
    10
    11
    11
    12
    Ecc...in questo caso manca il(3)
    Vorrei che Excel mi indichi il numero mancante...



  • di ninai (utente non iscritto) data: 15/08/2015 14:35:38

    Ma li hai visti i file allegati e le formule già proposte??? Cosa non ti corrisponde??



  • di Vecchio Frac data: 15/08/2015 14:59:49

    Faccio capolino con una doppia proposta in VBA (non avevo visto il seguito del discorso... ma si può adattare).
     
    Option Explicit
    
    'soluzione 1
    'somma i valori del range e applica una semplice formula di Gauss
    Function missing_num(rng As Range) As Long
    Dim cell As Range, xSum As Long, n As Long
        For Each cell In rng
            xSum = xSum + cell
        Next
        n = Application.Max(rng)
        missing_num = n * (n + 1) / 2 - xSum
    End Function
    
    
    'soluzione 2
    'usa un trucco con Xor
    'pone i numeri del range in Xor con un indice in sequenza
    'poichè un numero in Xor con se stesso risulta zero,
    'un risultato diverso da zero indica un numero fuori sequenza
    Function missing_num2(rng As Range) As Long
    Dim i As Long
        For i = 1 To rng.Count
            If (i Xor rng.Cells(i)) <> 0 Then
                missing_num2 = i
                Exit Function
            End If
        Next
    End Function
    





  • formule alternative
    di ninai data: 15/08/2015 15:31:56

    in alternativa alle formule proposte precedentemente, da collocare in qualunque cella, con lista estrazioni in A1:A200 (eventualmente adattare il range nelle formule):


    per un solo numero mancante:
    =CONFRONTA(0;INDICE(CONTA.SE($A$1:$A$200;RIF.RIGA($1:$90)););0)

    per più numeri mancanti:
    =SE.ERRORE(AGGREGA(15;6;RIF.RIGA($1:$90)/(CONTA.SE($A$1:$A$200;RIF.RIGA($1:$90))=0);RIF.RIGA(A1));"")

    quest'ultima, ovviamente, dopo inviata va ricopiata in basso




  • di A.bunetto (utente non iscritto) data: 16/08/2015 02:36:34

    Salve...
    Grazie ancora per i consigli....
    Se non chiedo troppo volevo proprio una guida che mi spiega passo passo le procedure da voi indicate,perché con questo software non ci avevo mai lavorato....quindi vi chiedo pazienza



  • di A.bunetto (utente non iscritto) data: 18/08/2015 03:15:12

    Salve a tutti!
    Se era possibile un aiuto ulteriore su come procedere con l'inserimento della formula....quando metto i numeri in cella verticale in ordine crescente,per ricavare il numero mancante che faccio,seleziono la colonna e poi vado su fx e inserisco la formula?esattamente come si procede ?
    Per favore aiutatemi!!!



  • di cromagno (utente non iscritto) data: 18/08/2015 04:29:32

    Ciao A.bunetto,
    non prenderla a male, ma non ritieni più semplice seguire qualche video tutorial su youtube sull'abc di excel per capire almeno come funziona?

    Comunque.... prendendo la formula proposta da ninai:
    Se i tuoi numeri li sistemi in verticale,nella prima colonna, partendo dalla cella A1 alla cella A200 nella cella dove vuoi che ti venga restituito il numero mancante ricopierai la formula.
    Se ad esempio vuoi il risultato nella cella B1... nella cella B1 (facendo doppio click sopra la cella o scrivendo direttamente nella barra delle formule, che sarebbe l'unica barra lunga sotto le icone dove puoi scrivere) scriverai:

    =SE.ERRORE(PICCOLO(SE(VAL.ERRORE(CONFRONTA(RIF.RIGA($A$1:$A$90);$A$1:$A$200;0));RIF.RIGA($A$1:$A$90));RIF.RIGA(A1));"")

    di solito la formula la confermi semplicemente con INVIO, questa (essendo matriciale) la devi confermare premendo la combinazione di tasti CTRL + SHIFT + INVIO (il tasto SHIFT o MAIUSC sarebbe quello largo con il simbolo di una freccia verso l'alto, di solito sotto il tasto INVIO).

    Siccome i numeri mancanti potrebbero essere più di uno, copia la cella B1 (cliccaci sopra col tasto destro e dal menu scegli "copia"), seleziona le celle da B2 a B90, clicca col destro sopra la selezione appena appena fatta e scegli "incolla", oppure una volta selezionate le celle premi la combinazione di tasti CTRL + V.



  • di A.bunetto (utente non iscritto) data: 18/08/2015 14:26:23

    Ciaooo
    Grazie mille!!
    Qualche video l'ho visto ma essendo un software molto complesso x me che non ho manco le basi e' un guaio....cmq hai risposto come volevo...grazie ancora x la disponibilità...cmq più tardi ci provo,ne farò tesoro di quello che mi avete consigliato....spero di riuscire
    Grazie tantissimo!!!



  • di A.bunetto (utente non iscritto) data: 18/08/2015 14:39:03

    Salve
    Chiaramente se la cella che utilizzo parte da a1 a a300
    Devo modificare la formula giusto?
    In questo modo?
    =SE.ERRORE(PICCOLO(SE(VAL.ERRORE(CONFRONTA(RIF.RIGA($A$1:$A$90);$A$1:$A$300;0));RIF.RIGA($A$1:$A$90));RIF.RIGA(A1));"")

    Grazie



  • di cromagno data: 18/08/2015 16:46:45

    Esattamente così..

    Se hai risolto, ricordati di spuntare la voce "Spunta se la discussione è RISOLTA."

    Ciao



  • di A.bunetto (utente non iscritto) data: 19/08/2015 17:19:36

    Salve
    Niente non riesco😖
    Cmq volevo chiedere se c'era qualcuno disposto a creare un programmino per il 10elotto5min perché mi serve per fare dei sistemi(in pratica gestisco una ricevitoria)
    Chiaramente sono disposto a pagare....
    Se qualcuno è interessato mi faccia sapere,così spiego meglio cosa ho in mente....
    Cmq grazie!!!


  • Allineare numeri in una colonna
    di A.bunetto (utente non iscritto) data: 20/08/2015 01:07:46

    Salve
    Ho importato con Excel 240 numeri da 1a90
    Disposti in orizzontale e occupano le prime 4 righe
    Vorrei raggrupparli e disporli in una sola riga dal più piccolo
    Al più grande...ovviamente ci sono molti numeri che si ripetono
    Come devo fare?
    Grazie in anticipo a chi mi vuole aiutare



  • di patel data: 20/08/2015 07:21:54

    per ogni argomento occorre aprire una nuova discussione,
    puoi ordinare i dati selezionandoli e cliccando sul pulsante Ordina