Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Ripetizione di una Colonna di Valori Casuali

Ultimo Aggiornamento: 08/12/2023 10:42
Post: 939
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
05/12/2023 17:07

in colonna A ho 10 valori CASUALE()
in colonna B ho =CONFRONTA(GRANDE($A$1:$A$10;RIF.RIGA(A1));$A$1:$A$10;0)
e così ottengo 10 valori casuali da 1 a 10 senza ripetizioni
Ora vorrei poter duplicare la colonna B varie volte su C, D, E, ecc
MA in modo che queste colonne siano pure esse casuali ma diverse da B, e tutte diverse fra loro
Bel problema da formulisti...
grazie

LEO
https://t.me/LordBrum
Post: 3.593
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 12:32

con le formule ???

Hai ipotizzato l'utilizzo di casuale.tra(x;y)

A parte questo il casuale() ti fornirà numeri sempre diversi ad ogni minima variazione delle celle, come concili??


saluti


[Modificato da dodo47 06/12/2023 12:48]
Domenico
Win 10 - Excel 2016
Post: 942
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 13:49

Re:
dodo47, 06/12/2023 12:32:

con le formule ???
Hai ipotizzato l'utilizzo di casuale.tra(x;y)
A parte questo il casuale() ti fornirà numeri sempre diversi ad ogni minima variazione delle celle, come concili??


Ciao Domenico
sì, con le formule, perchè ho trovato altri esempi simili
ho letto abbastanza e in giro si dice che tra le 2 formule è meglio casuale() che non casuale.tra, non ricordo il motivo
ad ogni variazione so io come rimediare alle mie necessità
Ora ti mostro, anche in allegato, una cosa fatta dal famoso Paoloard

https://answers.microsoft.com/it-it/msoffice/forum/all/generare-serie-casuali-senza-ripetizione-da-una/19fa03e7-3dfa-4567-83f8-64e89d95d595

ma ha 2 difetti
- in alto vorrei se possibile eliminare il rigo delle intestazioni, a meno che per qualche strano motivo non serva allo sviluppo
- in basso chissà perchè c'è costantemente l'1, cioè l'ultima riga non è mai random
(se vai a quel link mi scaricheresti il file pronto, visto che io non ho account validi ?)

non riesco a credere che non ci sia la possibilità di copiare da una colonna random altre colonne che diventi pure random
[Modificato da L2018 06/12/2023 15:21]

LEO
https://t.me/LordBrum
Post: 3.594
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 15:59

ciao
quindi ben diverso da quanto hai prospettato....

E' un'unica formula e non una colonna con casuale() e una con confronta.....

Per la prima riga basta che la cancelli,

Comunque i numeri generati sono univoci nella stessa colonna, non tra le colonne, cioè in colonna 2 puoi trovare 5 e lo puoi trovare anche in colonna 3,7,9 etc etc, pertanto non rispecchia la tua necessità.

Per gli 1 a fine tabella non saprei.

Il link è stato rimosso.

saluti
[Modificato da dodo47 06/12/2023 16:09]
Domenico
Win 10 - Excel 2016
Post: 944
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 16:19

Re:
ciao Domenico
in realtà mi sembrava di aver scritto bene:
in modo che queste colonne siano pure esse casuali ma diverse da B, e tutte diverse fra loro

so bene che i numeri sono univoci in ogni colonna, forse ho detto colonne diverse per intendere che avessero valori univoci anche esse e ricalcolati ex-novo ad ogni copincolla colonna

non basta cancellare la prima riga perchè l' 1 della prima colonna stranamente risale di un posto, e non compare più in nessuna colonna, neppure nell'ultima riga

il link non è stato affatto rimosso perchè ci dono andato io appena adesso, cliccando sul link che ho messo e ricontrollato

comunque grazie, se ti viene in mente qualcosa...allertami

il file che ti ho inviato va benissimo per me tranne l'ultima riga
[Modificato da L2018 06/12/2023 16:21]

LEO
https://t.me/LordBrum
Post: 3.595
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 16:23

mi sembra quello che ho detto io
il file che hai sottoposto crea colonne univoche di numeri ma che possono contenere dati uguali tra loro.

Per link intendevo il link che sta dentro il link che tu mi hai dato, ovvero il file allegato da Paolo non esiste più

Io ho cancellato (non eliminato) la prima riga dal tuo file e non riscontro errori

saluti



[Modificato da dodo47 06/12/2023 16:24]
Domenico
Win 10 - Excel 2016
Post: 945
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 16:35

Re:
dodo47, 06/12/2023 16:23:

mi sembra quello che ho detto io
il file che hai sottoposto crea colonne univoche di numeri ma che possono contenere dati uguali tra loro.

Per link intendevo il link che sta dentro il link che tu mi hai dato, ovvero il file allegato da Paolo non esiste più

Io ho cancellato (non eliminato) la prima riga dal tuo file e non riscontro errori




ok,sulle prime 2 righe qui sopra

ok sul file cancellato di Paolo, peccato

ok, ho cancellato, non eliminato, colonne restano indenni ma tutta l'ultima riga resta fatta di 1, grande fregatura

mi metterò l'anima in pace, e tuttavia uno straccio di VBA lo accetterei a sto punto

Grazie comunque

LEO
https://t.me/LordBrum
Post: 3.596
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 16:55

Re: Re:
L2018, 06/12/2023 16:35:

... tuttavia uno straccio di VBA lo accetterei a sto punto...



Specifica bene...

quante colonne servono
di quante righe ciascuna
i numeri presenti in ogni colonna diversi tra loro e diversi dalle altre colonne? Cioè se hai 3 colonne di 3 numeri ciascuna vuoi 9 numeri diversi?

saluti
Domenico
Win 10 - Excel 2016
Post: 946
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 17:08

Re: Re: Re:
dodo47, 06/12/2023 16:55:

L2018, 06/12/2023 16:35:

... tuttavia uno straccio di VBA lo accetterei a sto punto...


Specifica bene...
quante colonne servono
di quante righe ciascuna
i numeri presenti in ogni colonna diversi tra loro e diversi dalle altre colonne? Cioè se hai 3 colonne di 3 numeri ciascuna vuoi 9 numeri diversi?
saluti


cerco di essere preciso

dato un elenco arbitrario di valori

vorrei poter decidere quante colonne mi servono
(considero le colonne, non le righe)

queste colonne devono essere costituite dai valori (di solito numerici) dell'elenco dato, mescolati , e le colonne successive idem, ovviamente tra una colonna e l'altra i numeri si ripeteranno, ma non al punto di determinare colonne identiche, come giustamente pensava Paolo.

Che cosa dimentico ai fini della precisione ? non so
(In realtà la mia mente era andata più in là, ma dopo Natale vorrei fare qualcosa di particolare col PoweBasic )


LEO
https://t.me/LordBrum
Post: 3.597
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 17:19

ma hai un elenco di partenza fisso?

Se fai un esempio, corto, è meglio perchè non ho capito.

Ti interessa un elenco, per esempio di 10 numeri x 10 colonne tutti differenti tra loro?

saluti
Domenico
Win 10 - Excel 2016
Post: 947
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 17:30

Re:
dodo47, 06/12/2023 17:19:

ma hai un elenco di partenza fisso?

Se fai un esempio, corto, è meglio perchè non ho capito.

Ti interessa un elenco, per esempio di 10 numeri x 10 colonne tutti differenti tra loro?

saluti



i semplici numeri interi da 1 a 30 dello specchietto che ti ho mandato

non è 10 x 10 o 30 x 30, non è e non vuole essere un riquadro matrice, ma solo un elenco di colonne quante ne voglio con i numeri mescolati appartenenti al primo elenco dato

qualcosa di simile al file che ti ho mandato, non mi interessano le intestazioni

LEO
https://t.me/LordBrum
Post: 3.598
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 18:33

ciao
nell'allegato inserisci in col. A (da riga 2 in poi i valori che vuoi mescolare
in C1 il numero di colonne che vuoi (la inputBox la farai in autonomia)

premi esegui

questo il codice

saluti
Sub Esegui()
Dim mArr() As Variant, lr As Long, nCol As Integer, colW As Integer
lr = Range("A" & Rows.Count).End(xlUp).Row
mArr = Application.Transpose(Range("A2:A" & lr).Value)
nCol = Range("C1")
colW = 2
For j = 1 To nCol
    Shuffle mArr, colW
    colW = colW + 1
Next j
End Sub
Function Shuffle(data_vector() As Variant, colonna As Integer) As Variant()
    Dim shuffled_vector() As Variant
    shuffled_vector = data_vector
    Dim i As Long
    For i = UBound(shuffled_vector) To LBound(shuffled_vector) Step -1
        Dim t As Variant
        t = shuffled_vector(i)
        Dim j As Long
        j = Application.RandBetween(LBound(shuffled_vector), UBound(shuffled_vector))
        shuffled_vector(i) = shuffled_vector(j)
        shuffled_vector(j) = t
    Next i
    Cells(2, colonna).Resize(UBound(shuffled_vector), 1) = Application.Transpose(shuffled_vector)
End Function
Domenico
Win 10 - Excel 2016
Post: 948
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 18:45

ecco, subito scaricato, modificato le sigle in numeri, appare funzionare alla perfezione
non so immaginare possibili sbavature ma sembra fare esattamente quello che desideravo
naturalmente questo giocattolo fa parte di una visione più complicata che cerco di arrangiare da solo, anche guardando il codice
E quindi non so come ringraziarti di questo lavoro che mi permetto di presumere sia stato piu facile realizzare che non da parte mia spiegare.
Grazie molte Domenico
Apprezzo le tue domande estremamente mirate al fine di non perdere tempo o fare erroretti

PERFETTO
[Modificato da L2018 06/12/2023 18:49]

LEO
https://t.me/LordBrum
Post: 3.599
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
06/12/2023 18:49

bene
importante aver trovato una possibile soluzione

saluti




Domenico
Win 10 - Excel 2016
Post: 1.235
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 08:21

Buongiorno
Ti faccio un esempio....dato un elenco da A2 a A51(50 righe) ma puoi mettere anche testi

In A2 da trascinare in basso fino a riga 51
=RIF.RIGA(A1)
IN B2 da trascinare a destra e poi in basso

=INDICE($A$2:$A$51;AGGREGA(15;6;RIF.RIGA($1:$50)/(CONTA.SE(B$1:B1;RIF.RIGA($1:$50))=0);CASUALE.TRA(1;50-CONTA.NUMERI(B$1:B1))))
Post: 953
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 08:38

Buongiorno Danilo
ho scritto quello che suggerisci ma...non so, forse non ho scritto bene
ti dispiacerebbe darmi direttamente un piccolo file di esempio ?

LEO
https://t.me/LordBrum
Post: 1.236
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 08:41

Ciao
Allego file
Post: 954
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 08:54

volevo ben dire io
il mio Excel 2007 pare non supportare qualcosa della tua formula
allora ho provato il file con l'altro programmetto SPREAD32 che supporta formule recenti
si apre in modo faticoso e non mi permette di modificare, forse per eccesso di celle
poichè intravvedo le tue formule cercherò di diminuire le righe e le colonne in modo da rendere il file piu leggero
In effetti le formule, detto in un modo un po' alla carlona, sembrano essere simili a quelle di un file funzionante che ho da qualche parte ma che ha altro difetto

comunque ti ringrazio molto

LEO
https://t.me/LordBrum
Post: 955
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 09:02

sono riuscito a diminuire righe e colonne, ma questo è ciò che vedo
ora dovrei studiare la cosa.....

LEO
https://t.me/LordBrum
Post: 1.237
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 09:06

Ciao
Col 2007 non funziona perché non hai AGGREGA
la formula per il 2007 in B2 da attivare matriciale CTRL+SHIFT+ENTER e poi trascinare a destra e in basso

=SE.ERRORE(INDICE($A$2:$A$51;PICCOLO(SE(CONTA.SE(B$1:B1;RIF.RIGA($1:$50))=0;RIF.RIGA($1:$50));CASUALE.TRA(1;50-CONTA.NUMERI(B$1:B1))));"")
[Modificato da DANILOFIORINI 07/12/2023 09:09]
Post: 1.238
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 09:11

Poi vedo la foto del file aperto in un altro foglio di calcolo prova a cambiare il Casuale tra hai lasciato 1:50 ma hai ridotto gli altri parametri a 21 metti 21 al posto di 50
Post: 956
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 09:15

eh, ma adesso hai fornito una formula diversa, non solo per gestione errore ma anche perla presenza di "piccolo"
e si ottiene
ma l'importante è che a te funzioni, in questo caso dovrei provvedere io

LEO
https://t.me/LordBrum
Post: 1.239
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 09:20

Ciao
Leo non è una formula diversa....non avendo AGGREGA sul 2007 si usa PICCOLO che non è altro che il parametro 15 di AGGREGA
Post: 957
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 09:22

certo, poichè su 2007 non va ho usato spread32 che dovrebbe funzionare, ho applicato la tua seconda formula e ti rimando il file

dovrei averlo compilato bene e in teoria a te dovrebbe funzionare, solo 20 righe e 4 colonne, ma gari puoi correggerlo e rimandarmelo
[Modificato da L2018 07/12/2023 09:24]

LEO
https://t.me/LordBrum
Post: 958
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 09:26

mannaggia, scusami, ho dimenticato di correggere il 50

sto cercando di correggere ma è lento, procedo
[Modificato da L2018 07/12/2023 09:32]

LEO
https://t.me/LordBrum
Post: 1.240
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 09:34

Allora ti rimando l ultimo file con la formula corretta per il 2007
Ora appena lo aprirai sicuramente vedrai tutte celle vuote in quanto io scrivo da cellulare e ho ho excel online dove non c'è bisogno dei attivare le matrici
La formula

SE.ERRORE(INDICE($A$2:$A$21;PICCOLO(SE(CONTA.SE(B$1:B1;RIF.RIGA($2:$21)-1)=0;RIF.RIGA($2:$21)-1);CASUALE.TRA(1;20-CONTA.NUMERI(B$1:B1))));"")


Mettiti in B2 confermala matriciale e poi trascini a destra e in basso

P.S. se hai bisogno ti spiego come funziona la formula con AGGREGA e con PICCOLO(SE
[Modificato da DANILOFIORINI 07/12/2023 09:35]
Post: 959
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 09:38

eccomi, ho rifatto daccapo piu semplice
in teoria funziona il meccanismo ma nelle colonne ci sono ripetizioni, che non ci dovrebbero essere
dimmi almeno se il fenomeno dipende dalla mia implementazione magari sbagliata

LEO
https://t.me/LordBrum
Post: 960
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
07/12/2023 09:43

Re:
non preoccuparti, entrambi abbiamo creato un file credibile, che però sembra avere il difetto di fondo
io non volevo ripetizioni di valori in una colonna

LEO
https://t.me/LordBrum
Post: 1.242
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 09:56

Scusa Leo ma nell ultimo file che hai mandato io non vedo ripetizioni nelle colonne....te lo rimando con una formula inserita da I2 a N2 che conta quanto valori univoci ci sono nelle colonne da B a G il risultato è sempre 10 quindi non ci sono ripetizioni

=MATR.SOMMA.PRODOTTO(1/CONTA.SE(B$2:B$11;B$2:B$11&""))

Saluti
[Modificato da DANILOFIORINI 07/12/2023 09:56]
Post: 1.243
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
07/12/2023 10:02

Non riesco a eliminare il post doppio
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 08:16. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com