Ciao a tutti.
Avrei una richiesta di aiuto da sottoporre.
Sto creando un file per la gestione del personale in ufficio.
L'ultima formula per chiudere il file mi sta creando molti problemi perché non ho proprio idea di dove sbattere la testa.
Premessa: non ho la benché minima idea di cosa fare e come utilizzare una macro quindi chiedo cortesemente aiuto solo con formule standard.
Faccio prima ad allegare l'immagine del file (nell'immagine c'è un piccolo errore: nelle celle D54:D57 leggasi TP come T3, ho sbagliato a scrivere).
Quello che mi occorrerebbe sapere è quali formule inserire nelle celle da i52 ad r58 per fare in modo che i nomi presenti nelle colonne D, F, H, i, L, N, P ed R (che cambiano, anche nella quantità, in base alla data in alto a sinistra di volta in volta), dalle righe 40 a 49 vengano riportati nelle righe da 52 a 58, intervallo i-r, in base all'ordinamento contrario indicato sotto la dicitura "Turni per fasce".
Cioè vorrei che, per l'esempio allegato, apparissero i seguenti nomi nelle seguenti righe:
52) Gianni Carlo Alessio Alex Silvio Attilio Giacomo
53) Gianni Carlo Alessio Alex Silvio Attilio Giacomo Francesca Gianluca
54) Gianni Carlo Alessio Alex Silvio Attilio Davide Francesca Gianluca
55) Gianni Carlo Alessio Alex Francesca Gianluca Davide
56) Franco Mauro Vincenzo Mercurio Amedeo Saverio Stefano Davide Francesca Gianluca
57) Franco Mauro Vincenzo Mercurio Amedeo Saverio Stefano Davide
58) Franco Mauro Vincenzo Mercurio Amedeo Saverio Stefano
alle fasce 1 e 9, cioè righe 51 e 59, la formula è un banalissimo uguale poiché non ci sono altre colonne da "sommare" insieme.
Note aggiuntive: non tutti i giorni ci sono tutti i turni quindi potrebbero esserci intere colonne vuote. Nell'esempio infatti ho forzato alcuni turni giusto per riempire tutte le colonne. Ho analizzato, in questo stesso forum, già questa discussione ma non penso che la formula illustrata possa adattarsi al mio caso.
Potreste aiutarmi, per favore?
Grazie!
Ciao Rex
Non entro nel merito del tuo problema ma per ricevere aiuto devi allegare un file di Excel e non un immagine con la quale non si può far nulla.
Diversamente costringi chi volesse aiutarti a doverselo ricostruire da solo il che non è bello né corretto.
Alfredo
"Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"
"Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)
Fatto
Benvenuto nel Forum Rex
passi dalla PORTA due minuti quando hai tempo e ti presenti?
Grazie![]()
Avvisi generali e importanti, pena CHIUSURA thread e/o BAN. Il crossposting è vietato. Le richieste di "pappa_pronta" sono vietate. Utilizzate i tag CODE per il codice. Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
Sii gentile quando possibile. È sempre possibile
(Dalai Lama)
Qualcuno mi sa aiutare, per favore?
Ciao,
per "ordinamento contrario" intendi quindi una "trasposizione dei dati" ?
Comunque non ho ho capito da dove prendi quei nomi ed in base a cosa (es. Gianni non è nemmeno presente nel file che hai allegato)
[EDIT]
Inoltre, le colonne da cui prendere i nomi sono 8 (D, F, H, J, L, N, P ed R) mentre le righe da riempire sono 9 (51 - 59)....
Mi sa che non torna qualcosa, o semplicemente non ho capito cosa intendi.
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Ho dovuto togliere i cognomi originali per privacy. Al posto di Gianni leggi Giovanni, ho sbagliato a trascrivere, ma non cambia la sostanza della richiesta.
Nella riga 52 devono andare, nell'ordine, i nomi che stanno sotto la colonna T1, poi T4, poi TM
Nella riga 53 devono andare, nell'ordine, i nomi che stanno sotto la colonna T1, poi T4, poi TM, poi TB
Nella riga 54 devono andare, nell'ordine, i nomi che stanno sotto la colonna T1, poi T4, poi T3, poi TB
Nella riga 55 devono andare, nell'ordine, i nomi che stanno sotto la colonna T1, poi TB, poi T3
Nella riga 56 devono andare, nell'ordine, i nomi che stanno sotto la colonna T2, poi T5, poi T3, poi TB
Nella riga 57 devono andare, nell'ordine, i nomi che stanno sotto la colonna T2, poi T5, poi T3
Nella riga 58 devono andare, nell'ordine, i nomi che stanno sotto la colonna T2, poi T5
I nomi vengono presi dagli altri fogli in base a tabelle molto articolate, calcoli di turnistiche, orari, ferie, riposi, variazioni, ecc...
NB: «alle fasce 1 e 9, cioè righe 51 e 59, la formula è un banalissimo uguale poiché non ci sono altre colonne da "sommare" insieme.». Mi servono solo le righe da 52 a 58
Ti ringrazio
Ciao, giusto per capire
Ma il risultato atteso che hai scritto nel post #1 a quale data si riferisce?
Grazie
Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein
Un saluto a tutti,
@ Rex, nel tuo esempio hai compilato la riga 51 e la riga 59 che prendono rispettivamente i dati delle colonne D40,,,P40... da verticale li porti in orizzontale.
Poi dici ad esempio
secondo il tuo esempio dovremmo mettere solo i dati della colonna F40...T1 da verticale ad orizzontale, cosa c'entrano la T4 e TMNella riga 52 devono andare, nell'ordine, i nomi che stanno sotto la colonna T1, poi T4, poi TM
<--- Se ti piace la risposta di qualcuno, oltre a ringraziarlo, puoi cliccare su "Like" in basso a sinistra del loro messaggio.
Ciao a tutti,
@Rex
Non conviene usare formule differenti per ottenere gli stessi risultati in una tabella... anche se è un semplice "uguale" (che tra l'altro non è dinamico).
Rimanendo con qualche dubbio su quello che ti propongo....
Nella cella I51 (da copiare poi in basso e a destra) utilizza questa formula matriciale (quindi da confermare con la combinazione di tasti CTRL+MAIUSC+INVIO anzichè solo con INVIO):
=SE.ERRORE(INDICE($B$40:$B$59;CONFRONTA(DESTRA(GRANDE(SE.ERRORE((RIF.RIGA($A$40:$A$59)/($A$40:$A$59=$C51:$F51))+RIF.COLONNA($C51:$F51)*1000;"");RIF.COLONNA(A1));3)*1;RIF.RIGA($A$40:$A$59);0));"")
Riallego il file ...
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Ciao a tutti, Rex se ho capito bene, una possibile soluzione potrebbe essere la seguente:
In I51:
=SE.ERRORE(INDICE($B$40:$B$59;AGGREGA(15;6;(RIF.RIGA($A$40:$A$59)-RIF.RIGA($A$40)+1)/(($A$40:$A$59=$C51)+($A$40:$A$59=$D51)+($A$40:$A$59=$E51)+($A$40:$A$59=$F51));COLONNE($I$51:I$51)));"")
da trascinare verso destra e successivamente da tirare giù.
Fa sapere se va bene, Ciao.
Ciao Rex Infernus, credo di aver interpretato bene il tuo problema, per cui copia la seguente:
In I51:
=SE.ERRORE(INDICE($B$40:$B$59;AGGREGA(15;6;(RIF.RIGA($A$40:$A$59)-RIF.RIGA($A$40)+1)/($A$40:$A$59=$F51);COLONNE($I$51:I$51)));SE.ERRORE(INDICE($B$40:$B$59;AGGREGA(15;6;(RIF.RIGA($A$40:$A$59)-RIF.RIGA($A$40)+1)/($A$40:$A$59=$E51);COLONNE($I$51:I$51)-CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)))));SE.ERRORE(INDICE($B$40:$B$59;AGGREGA(15;6;(RIF.RIGA($A$40:$A$59)-RIF.RIGA($A$40)+1)/($A$40:$A$59=$D51);COLONNE($I$51:I$51)-(CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)))+CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($E51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($E51;DESTRA($C$38:$R$38;2);0)+2))))));SE.ERRORE(INDICE($B$40:$B$59;AGGREGA(15;6;(RIF.RIGA($A$40:$A$59)-RIF.RIGA($A$40)+1)/($A$40:$A$59=$C51);COLONNE($I$51:I$51)-(CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)))+CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($E51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($E51;DESTRA($C$38:$R$38;2);0)+2)))+CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($D51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($D51;DESTRA($C$38:$R$38;2);0)+2))))));""))))
da attivare prima con i tasti CTRL+MAIUSCOLO+INVIO, poi da trascinare verso destra e successivamente da tirare giù.
Fa sapere se va bene.
Ciao e buon fine settimana.
Ciao Rex Infernus, dimenticavo di allegare il file.
Di nuovo ciao.
Ciao Rex ciao Tutti!!
Non so se ho capito bene, ma mi sembra che Rex voglia estrarre le persone che sono nella tabella di sopra...
Certo l'esercizio è molto articolato e mi sono fatto aiutare dalla funzione INDIRETTO ma con la definizione dei nomi, forse la formula è un po lunghetta ma non sono riuscito a snellirla (sarà l'influenza di Pippo??)
in I51 ho messo questa formula matriciale*** da copiare a destra ed in basso fino alla bisogna
Nomi definiti:
Attenzione che excel mi ha messo un "Underscore" dopo i nomi definiti che finivano con un numero e quindi ho dovuto mettere l'underscore anche sui nomi definiti che finivano con le lettere (vedi in rosso)
T1_ riferito a ='Andamento Coperture'!$F$40:$F$49
T2_ riferito a ='Andamento Coperture'!$P$40:$P$49
T3_ riferito a ='Andamento Coperture'!$N$40:$N$49
T4_ riferito a ='Andamento Coperture'!$H$40:$H$49
T5_ riferito a ='Andamento Coperture'!$R$40:$R$49
TB_ riferito a='Andamento Coperture'!$L$40:$L$49
TM_ riferito a ='Andamento Coperture'!$J$40:$J$49
TN_ riferito a ='Andamento Coperture'!$D$40:$D$49
=SE.ERRORE(SE.ERRORE(SE.ERRORE(SE.ERRORE(INDICE(INDIRETTO($F51&"_");PICCOLO(SE(INDIRETTO($F51&"_")>"";RIF.RIGA(INDIRETTO($F51&"_"))-MIN(RIF.RIGA(INDIRETTO($F51&"_")))+1);COLONNE($I51:I51)));INDICE(INDIRETTO($E51&"_");PICCOLO(SE(INDIRETTO($E51&"_")>"";RIF.RIGA(INDIRETTO($E51&"_"))-MIN(RIF.RIGA(INDIRETTO($E51&"_")))+1);COLONNE($I51:I51)-ASS(10-CONTA.VUOTE(INDIRETTO($F51&"_"))))));INDICE(INDIRETTO($D51&"_");PICCOLO(SE(INDIRETTO($D51&"_")>"";RIF.RIGA(INDIRETTO($D51&"_"))-MIN(RIF.RIGA(INDIRETTO($D51&"_")))+1);COLONNE($I51:I51)-ASS(20-SOMMA(CONTA.VUOTE(INDIRETTO($F51&"_"));CONTA.VUOTE(INDIRETTO($E51&"_")))))));INDICE(INDIRETTO($C51&"_");PICCOLO(SE(INDIRETTO($C51&"_")>"";RIF.RIGA(INDIRETTO($C51&"_"))-MIN(RIF.RIGA(INDIRETTO($C51&"_")))+1);COLONNE($I51:I51)-ASS(30-SOMMA(CONTA.VUOTE(INDIRETTO($F51&"_"));CONTA.VUOTE(INDIRETTO($E51&"_"));CONTA.VUOTE(INDIRETTO($D51&"_")))))));"")
*** le formule matriciali devono essere inserite utilizzando la combinazione della tastiera
premendo CTRL, MAIUSC, INVIO (e non solo INVIO). Tenere premuto sia il tasto CTRL e il tasto MAIUSC poi premi INVIO.
PS visto che l'esercizio è abbastanza articolato, inserisco l'allegato
Rex ti consiglio di non utilizzare le celle unite, molte volte sono un problema
Un saluto
Gerardo
Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein
Ciao Pippo vedo solo ora la tua formula e complimenti per il (k) più lungo che abbia mai visto in vita mia
Woowww!!!
COLONNE($I$51:I$51)-(CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($F51;DESTRA($C$38:$R$38;2);0)+2)))+CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($E51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($E51;DESTRA($C$38:$R$38;2);0)+2)))+CONTA.NUMERI(INDIRETTO(INDIRIZZO(40;CONFRONTA($D51;DESTRA($C$38:$R$38;2);0)+2)&":"&INDIRIZZO(49;CONFRONTA($D51;DESTRA($C$38:$R$38;2);0)+2))))
Dimenticavo.... se dici ancora che queste formule le hai imparate nel mio canlale YouTube smentisco subito, perchè sono io che devo imparare da te
Un saluto![]()
Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein
Ciao Gerardo, se ho imparato qualcosa nel mondo di excelle questo lo devo a te e ai tuoi video.
Per il resto mi attribuisci delle abilità che francamente non ritengo di possedere.
C'è tanta voglia d'imparare, tanta curiosità e una buona dose di disponibilità verso gli altri.
Sei un mio riferimento e continuerai ad esserlo.
La chiudo qua e chiedo scusa agli amici del forum e agli utenti se sono stato palloso.
Ciao e buona domenica a tutti.
Ciao.
Grazie 1000 a tutti, ho completato il file (fino alla prossima modifica che mi verrà richiesta dal capo... cioè prossima settimana!!!).
È troppo chiedervi di spiegarmela? Soprattutto la questione delle parentesi graffe. Anche perché se ci dovrò mettere mano in futuro poi non ne sono capace. Ho visto scritto diverse volte in internet di CTRL+MAIUSC+INVIO ma non ho capito il motivo. (NB: ho usato quella di pkrome59 perché era la più lunga!)
Comunque Gerardo, per parlare di formule lunghe, nello stesso file, ma in altra sede e per altri scopi, ho inserito questa formula:
=SE(E(SINISTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);"AA");1)<>"T";SINISTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);"AA");1)<>"T");CONCATENA("A";DESTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0));1);"A");SE(SINISTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);"AA");1)<>"T";CONCATENA("A";DESTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0));1);DESTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);"AA");1));SE(SINISTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);"AA");1)<>"T";CONCATENA(DESTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);"AA");1);DESTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0));1);"A");CONCATENA(DESTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)-1);"AA");1);DESTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0));1);DESTRA(SE(O(SINISTRA(INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);1)="T";INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1)="RI");INDICE(MatriceTurni;CONFRONTA(NomeCollega;ListaColleghi;0);CONFRONTA(DataDelCambio;Calendario;0)+1);"AA");1)))))
Poi in realtà la cella in cui risiede questa formula non la utilizzo più poiché, se ci dovessi mettere mano, impazzirei. L'ho semplificata spacchettando la formula in più celle e raggruppando poi tutto insieme in un'unica cella. Almeno se ci devo mettere mano riesco a scomporre il funzionamento in blocchetti ed è più semplice.
Pensa a togliere tutti i nomi e lasciare le coordinate delle celle cosa viene fuori...
Edit: c'è qualcosa che non va poiché non mi vengono popolate le caselle con i nomi di chi è in T5. Dipende dal fatto che sono state cambiate le formule anche in C40:R49?
Ultima modifica fatta da:Canapone; 08/02/17 alle 11:43
Ciao Rex
tu scrivi:
è un po lunga da spiegare la formula matriciale o formula matrice che dir si voglia, e quindi il perchè di CTRL+MAISC+INVIO e anche il perchè delle parentesi Graffe, quindi ho creato un video cosi ti spiega beneÈ troppo chiedervi di spiegarmela? Soprattutto la questione delle parentesi graffe. Anche perché se ci dovrò mettere mano in futuro poi non ne sono capace. Ho visto scritto diverse volte in internet di CTRL+MAIUSC+INVIO ma non ho capito il motivo. (NB: ho usato quella di pkrome59 perché era la più lunga!)
Un saluto e buona visione
Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein
Ciao Rex Infernus, in merito al popolamento delle celle con i nomi appartenenti a T5, a me risuta regolare, infatti se perndi il file che ti ho allegato al post #14 e selezioni la data 13/09/2016, ti accorgerai che vengono regolarmente popolate.
Fa sapere, rimango in attesa.
Ciao.
Ciao.
Ho risolto modificando anche le formule presenti nelle celle sopra, le prime che tirano fuori i nomi. Ho visto che sono state cambiate rispetto a quelle che avevo messo io. Non mi chiedo il perché, in realtà, modificandole funzionano e va bene così.
Grazie Gerardo, stasera a casa lo guardo, spero di capirci!
Ultima modifica fatta da:Canapone; 08/02/17 alle 11:43
Condividi nei tuoi social!