Trovare numero mancante in una lista
Hai un problema con Excel? 
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
Vuoi Approfondire?