La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Ciao a tutti, sono un neofita e mi chiamo Giuseppe. Sono un autodidatta che sta provando a capire qualcosa di Excel,e mi sono inchiodato a questo problema.
Devo fare un riepilogo di vari fogli e scoprire se un libro è in casa o e ancora fuori. Siccome i libri vengono presi più volte durante l'anno e vengono aggiornati man mano nel foglio riepilogo o due voci "in casa" e "fuori" per ognuno dei 155 libri (per adesso). C'è una soluzione? Esempio: Libro N. 1
Maurizio Liliana Milena
Entrata Uscita Entrata Uscita Entrata Uscita
04/05/2023 25/05/2023 25/06/2023 13/08/2023 03/09/2023
Come vedete Milena deve ancora restituire il libro, ci sono 8 pagine da 20 libri per pagina più la prima che fa da indice e per ultima quella del riepilogo. Vorrei solo sapere se il libro è in casa o è ancora fuori, tutto lì da mostrare nel riepilogo.
Spero di essere stato chiaro e di non avervi complicato la vita, come me la sono complicata io.
Ti ringrazio anticipatamente, Giuseppe
Vi allego un file d'esempio con evidenziate le colonne dove riportare se sono usciti o no al foglio 3.
ciao
una idea
=MATR.SOMMA.PRODOTTO((STACK.VERT(Foglio1!$B$4:$B$1000;Foglio2!$B$4:$B$1000)=RIF.RIGA($A40))*(STACK.VERT(Foglio1!$D$5:$K$1001;Foglio2!$D$5:$K$1001)>0))
se il risultato è pari il libro è rientrato se dispari è fuori
=LET(A;MATR.SOMMA.PRODOTTO((STACK.VERT(Foglio1!$B$4:$B$1000;Foglio2!$B$4:$B$1000)=RIF.RIGA($A1))*(STACK.VERT(Foglio1!$D$5:$K$1001;Foglio2!$D$5:$K$1001)>0));SE(E(VAL.PARI(A);A>0);"IN CASA";"FUORI CASA"))
oppure per mettere una x sulla colonna in casa
=LET(A;MATR.SOMMA.PRODOTTO((STACK.VERT(Foglio1!$B$4:$B$1000;Foglio2!$B$4:$B$1000)=RIF.RIGA($A1))*(STACK.VERT(Foglio1!$D$5:$K$1001;Foglio2!$D$5:$K$1001)>0));SE(E(VAL.PARI(A);A>0);"X";""))
sulla colonna Fuori
=LET(A;MATR.SOMMA.PRODOTTO((STACK.VERT(Foglio1!$B$4:$B$1000;Foglio2!$B$4:$B$1000)=RIF.RIGA($A1))*(STACK.VERT(Foglio1!$D$5:$K$1001;Foglio2!$D$5:$K$1001)>0));SE(E(VAL.PARI(A);A>0);"";"X"))
è chiaro che se hai altri fogli li aggiungerai alla forrmula STACK.VERT()
e il rif.riga farà riferimento alla cella con il nome del libro
Ciao
Non conosco il motivo per cui hai bisogno di un Foglio per ogni libro (adesso, dici, sono 150; e se fossero 10000 come la mettiamo?) ma non potresti cambiare la struttura in questo modo:
in un Foglio: col.A = Data, col.B = IDLibro, col.C = nominativo, col.D = In casa, col.E = Out
In un intervallo fuori vista (ma anche in un altro foglio) metti l'elenco dei libri col relativo ID
Io ho messo in H1 "In casa", in J1 "Out" e in K1 "A chi"
Ti allego il mio esempio. Prova a cliccare sul pulsante blu. Cosa Occorre fare: Inserire i dati richiesti e poi cliccare sul pulsante.
Questo il codice VBA inserito
Option Explicit Sub status() Dim urL As Long, urD As Long, i As Long, j As Long, k As Long, ID As Long, a As Long, b As Long Dim flg As Integer urD = Cells(Rows.Count, 1).End(xlUp).Row urL = Cells(Rows.Count, 16).End(xlUp).Row Range("H2:K" & urL).ClearContents a = 1: b = 1 For i = 3 To urL 'scorre tutti i libri ID = Cells(i, 16).Value 'assume identificativo For j = 5 To urD 'scorre le date If Cells(j, 2) = ID Then 'se identificativi sono uguali If Cells(j, 5) = "x" Then 'libro in prestito For k = j + 1 To urD 'scorre di nuovo le date flg = 0 If Cells(k, 2) = ID And Cells(k, 4) = "x" Then a = a + 1 Cells(a, 8) = ID 'libro in casa flg = 1 Exit For End If Next k If flg = 0 Then b = b + 1 Cells(b, 10) = ID Cells(b, 11) = Cells(j, 3) End If End If End If Next j Next i End Sub
Ovviamente è migliorabile. Si potrebbero fare ricerche per Nominativo, per Libro, per data, ecc.
Fai sapere. Ciao,
Mario
Grazie per la tua risposta, ho provato, però io la facevo troppo semplice, 🙄 in effetti ogni pagina è composta da due fogli, però è comoda la soluzione ad una colonna, magari con il segno "X" fuori casa e di spunta in casa. Chiedo troppo? Ti invio il file originale (logicamente ho dovuto levare alcune diciture sensibili e i nomi per la privacy), per vedere se puoi darmi suggerimenti. Grazie ancora
Beppe
Grazie @marius44 per la tua risposta, purtroppo non posso modificare lo schema impostami dalla organizzazione per cui opero, posso solo aggiungere i nomi e le date. Quindi il riepilogo mi aiutava senza andare a spulciare numero per numero cosa ho in casa e cosa fuori. Così che quelli che ho fuori se è passato tanto tempo devo richiamarli. Ecco, se si può, sarebbe anche utile includere anche l'ultima data di uscita o il periodo di mesi che è uscito, chiedo troppo? Grazie qualunque sia la tua risposta. Come a @gianfranco55 ti allego il file se vuoi lavorarci, (Logicamente alcune informazioni e i nomi sono stati eliminati per privacy) 😉
ciao
struttura strana comunque Pei i pari........i dipari basta cambiare in VAL.DISPARI()
=LET(A;MATR.SOMMA.PRODOTTO((STACK.VERT(STACK.VERT('1-20:141-160'!$B$7:$B$46))=RIF.RIGA($A1))*(STACK.VERT(STACK.VERT('1-20:141-160'!$D$8:$W$47))>0));SE(E(VAL.PARI(A);A>0);"X";""))
per trovare la data
=MAX(SE(STACK.VERT('1-20:141-160'!$B$7:$B$45)=RIF.RIGA($A1);STACK.VERT('1-20:141-160'!$D$8:$V$46)))
@gianfranco55 Ti ringrazio moltissimo, ora provo e poi ti dico. Per me che sono alle prime armi siete stati preziosi. Grazie ancora per la tua disponibilità
Giuseppe
Ciao @gianfranco55,
innanzi tutto grazie per il tuo impegno, il progetto a prima vista sembra che vada bene. Se ho bisogno di altro posso contare sul tuo aiuto?
Grazie ancora
ciao
non solo del mio ma anche degli altri moderatori e non.
se ritieni che le formule siano quello che cercavi
gentilmente chiudi la discussione
grzie
Ciao, Scusami ancora per il disturbo, Avrei ancora un paio di cose da chiederti:
Lo sto facendo manualmente su dei fogli cartacei, la cosa mi richiede un po' di tempo, ma forse si può anche anche farlo in automatico con Excel.
Ora non ho dietro questi fogli ma spero di riuscirmi a spiegare:
Faccio dei riepiloghi delle uscite consultando i numeri dei libri le persone e le date di tutti i fogli di calcolo.
Scrivo in Blu quelli che sono usciti in meno di 4 mesi.
In Verde quelli da 4 a 6 mesi
In Rosso quelli da 6 a 8 mesi
In Nero quelli da 8 mesi in +
Ripeto in Quest i metto la colonna Numero; Data; Nome.
Faccio la stessa cosa con quelli che ho in giacenza, logicamente senza il nome dell'utente.
E' possibile automatizzare tutto questo?
Inoltre (ma questo è un mio capriccio personale, quindi se chiedo troppo lascia perdere) mi piacerebbe fare dei grafici a torta con i vari dati (logicamente che si aggiornino in automatico), uno di uscita (con i dati che ti ho appena fornito), uno di giacenza e uno generale che racchiude tutto.
Ringrazio te e i moderatori per l'aiuto che mi avete dato, mi avete semplificato molte cose. (E ho imparato anche qualcosa).
P. S, (Scusa ma non ho mai partecipato ai vari forum, spero di aver agito correttamente fino ad adesso. Poi mi spieghi come si fa a chiudere una discussione? 🙄
Grazie Giuseppe
ciao
per chiudere dovresti vedere sopra al primopost RISOLTO
basta cliccarlo
per il resto
apri un'altra domanda
dovresti fare un file esempio della struttura dei fogli
e con la formattazione condizionale si riesce a fare.
per i grafici vediamo la struttura