Individuazione ricorrenze in gruppi

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
tomoski
Messaggi: 6
Iscritto il: giovedì 31 maggio 2018, 19:30

Individuazione ricorrenze in gruppi

Messaggio da tomoski »

Ciao a tutti,
e perdonate il titolo, ma non riuscivo a trovare le parole per spiegare l'argomento... Spero di riuscire a spiegarmi qui sotto.

Quindi passo subito al discorso (molto) pratico:
ho un gruppo di 38 persone che lavoreranno in piccoli gruppi in 2 giornate separate. Devono essere divisi in 6 gruppi (4 formati da 6 persone + 2 formati da 7). Il secondo giorno i gruppi devono essere rimescolati, evitando il più possibile che i partecipanti si rincontrino nello stesso gruppo (ma inevitabilmente ci saranno delle persone che si rincontreranno...ma va bene).

Ora: io finisco con un file con 3 colonne (allegato):
1. la lista dei nomi
2. il gruppo di appartenenza del giorno 1
3. il gruppo di appartenenza del giorno 2

Il senso di questo è (detto in parole):
il Partecipante 1 (colonna 1) sarà nel Gruppo 1 il giorno 1 (colonna 2) e nel Gruppo 4 nel giorno 2 (colonna 3)
il Partecipante 2 (colonna 1) sarà nel Gruppo 1 il giorno 1 (colonna 2) e nel Gruppo 6 nel giorno 2 (colonna 3)
il Partecipante 3 (colonna 1) sarà nel Gruppo 1 il giorno 1 (colonna 2) e nel Gruppo 3 nel giorno 2 (colonna 3)
e via dicendo...

Esiste una formula con cui posso trovare "chi rincontra chi"?

Deve esserci una soluzione "semplice", ma proprio non ci arrivo...

Grazie mille!
Thomas
Allegati
tmk-esempio.ods
(18.93 KiB) Scaricato 106 volte
LibreOffice 6.0.3.2 - MacBook Pro OSx 10.13.4 (High Sierra)
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Individuazione ricorrenze in gruppi

Messaggio da unlucky83 »

Esiste una formula con cui posso trovare "chi rincontra chi"?
Dovresti chiarire meglio questo punto
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Attilafdd
Volontario
Volontario
Messaggi: 539
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: Individuazione ricorrenze in gruppi

Messaggio da Attilafdd »

tomoski ha scritto: Il secondo giorno i gruppi devono essere rimescolati, evitando il più possibile che i partecipanti si rincontrino nello stesso gruppo
Basta che il secondo giorno il primo gruppo sia formato da tutti i primi partecipanti di ogni gruppo precedente, il gruppo 2 da tutti i secondi partecipanti dei gruppi precedenti, il gruppo 3 da tutti i terzi partecipanti dei gruppi precedenti ecc.

Se i partecipanti fossero 36 (6 gruppi da sei), con questo metodo nessuno il secondo giorno si rincontrerà con i partecipanti del gruppo precedente.
... ma visto che sono 38 (2 in più), questi 2 in più inevitabilmente si reincontreranno con qualcuno.

Allego in colonna C l'esempio. (Volutamente sono in bianco le celle in corrispondenza del partecipante "P31" e "P38" ... perchè corrispondono ai "settimi" dei gruppi che a scelta si potranno piazzare in un altro gruppo qualsiasi).
Allegati
tmk-esempio 2.ods
(18.92 KiB) Scaricato 119 volte
LibreOffice 24.2.2 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: https://forum.openoffice.org/it/forum/v ... f=9&t=5661
tomoski
Messaggi: 6
Iscritto il: giovedì 31 maggio 2018, 19:30

Re: Individuazione ricorrenze in gruppi

Messaggio da tomoski »

Grazie per la risposta @Attilafdd. Infatti la suddivisone del giorno 2 l'avevo già risolta con un metodo simile (nella realtà dovevo tenere presente una serie di altri criteri non rilevanti per l'esempio, ma sono riuscito comunque a sistemarla).
Il fatto è che questa è una situazione nella quale mi ritrovo abbastanza spesso, con numeri di partecipanti e gruppi differenti. Per quello ero interessato a trovare una formula di "verifica", in modo da poterla applicare anche in altre situazioni.
LibreOffice 6.0.3.2 - MacBook Pro OSx 10.13.4 (High Sierra)
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Individuazione ricorrenze in gruppi

Messaggio da unlucky83 »

Mi ripeto: cosa intendi con una formula con chi rincontra chi?
Una formula dove in input metti partecipante 1 e ti restituisce i “compagni” comuni del gruppo 1 e del gruppo 2 a cui appartiene, quindi l’intersezione escluso Partecipante 1?

Al momento la miglior operazione da fare per fare una verifica è adoperare la tabella pivot.
Vedi allegato
Allegati
tmk-esempiopivot.ods
(16.08 KiB) Scaricato 94 volte
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
tomoski
Messaggi: 6
Iscritto il: giovedì 31 maggio 2018, 19:30

Re: Individuazione ricorrenze in gruppi

Messaggio da tomoski »

Ciao unlucky83, scusa non avevo visto la tua prima risposta.
A livello di logica il risultato è quello che hai indicato tu, ma a livello visivo non funziona. Nel senso che non voglio sia necessario andare a cercare le intersezioni, ma voglio che ci sia una colonna che mi restituisca direttamente i nomi dei "compagni" che si rincontrano nella riga di ogni partecipante.

Ho usato una vecchia formula (VLOOKUP) che utilizzavo in un altro file per individuare 2 persone che avessero un certo dato in comune. Così ho "evoluto" il file di esempio: i dati nelle colonne "bianche" andrebbero nascosti, lasciando solo il risultato nell'ultima colonna a colore.
Il pacco di questo metodo è che può individuare solo 1 duplicato. Mi spiego: se 1 partecipante incontra 1 altro partecipante il giorno successivo, allora funzione. Ma se 1 partecipante incontra 2 altri partecipanti nel giorno successivo, allora non funziona più...

D'altra parte VLOOKUP mi restituisce il primo risultato che trova. Stavo quindi dando un'occhiata a quest'altro thread (VLOOKUP in array): https://forum.openoffice.org/en/forum/v ... =9&t=62877
Ma faccio un po' fatica a comprenderne la logica, e quindi a riprodurlo in modo che per me abbia un senso...
Allegati
tmk-esempio-2.ods
(24.63 KiB) Scaricato 88 volte
LibreOffice 6.0.3.2 - MacBook Pro OSx 10.13.4 (High Sierra)
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Individuazione ricorrenze in gruppi

Messaggio da unlucky83 »

E una cosa così come la vedi?
Formula matriciale di K2 che popola la cella K2
=SE(GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);RIF.COLONNA(A1))=0;"-";INDICE($A$1:$A$39;GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);RIF.COLONNA(A1)) ;1))
Va copiata e incollata
Allegati
tmk-esempio-2.ods
(27.02 KiB) Scaricato 104 volte
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
tomoski
Messaggi: 6
Iscritto il: giovedì 31 maggio 2018, 19:30

Re: Individuazione ricorrenze in gruppi

Messaggio da tomoski »

La vedo molto bene! Perché poi mi basta concatenare i risultati nell'ultima cella e nascondere la matrice. Ottimo, grazie mille!

Un'unica domanda: riusciresti a spiegarmela "a parole"? Ci sono alcune funzioni che non ho mai utilizzato, ma che ho visto spesso, e sarebbe ora di capirle...
LibreOffice 6.0.3.2 - MacBook Pro OSx 10.13.4 (High Sierra)
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Individuazione ricorrenze in gruppi

Messaggio da unlucky83 »

Ci provo. La formula completa è

Codice: Seleziona tutto

=SE(GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);RIF.COLONNA(A1))=0;
"-";
INDICE($A$1:$A$39;GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);RIF.COLONNA(A1)) ;1)
)

Si riconosce

=SE("CONDIZIONE";
"SE VERO";
"SE FALSO"
)
"CONDIZIONE" non è altro che:

Codice: Seleziona tutto

GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);RIF.COLONNA(A1))
=0

ovvero

"FORMULAGRANDE"
=0;
"FORMULAGRANDE" restituisce un riferimento di riga valido (2 o 3 o...) quando trova la sequenza GxGy indicata in E, oppure 0 quando non coincide
Nello specifico:

Codice: Seleziona tutto

GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);
RIF.COLONNA(A1))

ovvero

GRANDE("MATRICE";
"POSIZIONE")
La funzione Grande ordina i valori di una "Matrice" dal più grande al più piccolo e variando il valore di "POSIZIONE" puoi passare al primo massimo (POSIZIONE=1) al secondo più grande (POSIZIONE=2).Per assegnare POSIZIONE ho adoperato la funzione RIF.COLONNA(A1), in questo modo con il copia e incolla a destra si incrementa.
La matrice sono i riferimenti di riga delle celle che hanno $E2=$E$2:$E$39 e 0 dove $E2<>$E$2:$E$39. E' la presenza di questo confronto che rende necessario impostare la formula come formula matriciale.
Infine,ciò che ho chiamato all'inizio "SE FALSO" è

Codice: Seleziona tutto

INDICE($A$1:$A$39;GRANDE(SE($E2=$E$2:$E$39;RIF.RIGA($A$2:$A$39);0);RIF.COLONNA(A1)) ;1)

ovvero

INDICE($A$1:$A$39;
"FORMULAGRANDE";
1)
La funzione Indice restiuisce il contenuto della cella dell'area $A$1:$A$39 che ha il riferimento di riga come risultato di FORMULAGRANDE e come riferimento di colonna 1 (colonna A)
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Individuazione ricorrenze in gruppi

Messaggio da charlie »

Ciao #tomoski e benvenuto sul forum.
Se ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Per una panoramica delle regole del forum consulta il Manuale di sopravvivenza: http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
tomoski
Messaggi: 6
Iscritto il: giovedì 31 maggio 2018, 19:30

Re: Individuazione ricorrenze in gruppi

Messaggio da tomoski »

@unlucky83: grande, sei stato preziosissimo!

@charlie: si hai ragione, scusa, nella fretta sono andato direttamente "al sodo"...
LibreOffice 6.0.3.2 - MacBook Pro OSx 10.13.4 (High Sierra)
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Individuazione ricorrenze in gruppi

Messaggio da unlucky83 »

Grazie. :)
Se per te è risolta la questione potresti mettere [RISOLTO] al titolo della discussione. Ciò non impedisce a chi trova una formula più corta di intervenire
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Rispondi