Se la richiesta e' complessa o meno lo devi valutare tu in funzione delle tue competenze; e l'estetica deve essere l'ultima cosa da risolvere dopo aver ottenuto i dati che servono.
Comunque secondo me tu devi fare una tabella analitica in cui registri i movimenti man mano che succedono: Data, Operatore, C, R, Q.li, Valore
Separatamente su questi dati crei un report, tramite una tabella pivot oppure tramite formule.
Ad esempio, in Foglio1 del file allegato ho inserito una tabella dati contenente i campi che (mi pare) devi popolare; per comodita' ho inserito anche una colonna Mese, che mi riporta direttamente il mese relativo alla colonna Data (non sarebbe necessaria, ma e' una semplificazione che non costa tanto); l'ho chiamata TabellaOrigine
Se mentre popoli i dati ti sposti nella tabella usando la freccia a destra (o il tab), quando arrivi sulla colonna "MESE" (che contiene la formula per il calcolo del mese) automaticamente la selezione si sposta alla colonna DATA della riga successiva; se in questo modo arrivi sulla fine tabella allora automaticamente viene aggiunta una nuova riga alla tabella e si puo' continuare l'input dei dati.
Questo e' ottenuto tramite la macro Worksheet_SelectionChange di Foglio1
Nota: sara' quindi impossibile modificare il contenuto dell'ultima colonna della tabella; se si vuole effettivamente cambiarne il contenuto, es per modificare la formula in essa contenuta, bisogna impostare prima la "modalita' Progettazione" sul tab "Sviluppo" del menu.
Visto che usi Office 365 la tua versione di Excel offre strumenti di filtro avanzati, applicabili a tabelle dati, tabelle pivot, grafici; possono essere usati per rendere piu' interattivi i risultati. Si tratta del Filtro Dati e Filtro Sequenza Temporale.
Per le caratteristiche e l'uso del Filtro Dati ("Slicer", in inglese) in una Pivot Table, vedi
https://support.office.com/en-us/articl ... fafe79fa8fSu questa tabella ho costruito una tabella Pivot. Per i primi suggerimenti sulle pivot tables:
https://support.office.com/en-us/articl ... 9134456576Alla pivot ho agganciato (a scopo dimostrativo) due "Filtri dati" e un filtro "Sequenza temporale"
Nella "Sequenza temporale" il timing puo' essere impostato con granularita' Giorno, oppure Mese, oppure Trimestre oppure Anno.
Vedi tu come questi filtri modificano la tabella pivot.
Sempre a scopo dimostrativo ho inserito un filtro anche sulla Tabella dati; semplificando, questo filtro agisce come quello dell'intestazione colonna; ha una diversa interfaccia, e puo' essere agganciato a piu' tabelle contemporaneamente. Tabelle pivot e grafici in genere elaborano solo dati non nascosti, nell'intervallo di origine.
Per inserire un filtro nella tabella dati: seleziona una cella della tabella, poi Strumenti tabella, gruppo Strumenti, usa Inserisci filtro dati.
Per inserire un filtro nella tabella pivot: seleziona una cella della pivot, poi Strumenti tabella piuvot, tab Analizza, gruppo Filtra; scegli un filtro.
Sempre a scopo dimostrativo, nello stesso foglio1 da K37 in avanti ho creato una tabella riassuntiva, alternativa alla pivot, che attinge ai dati direttamente dalla Tabella dati.
Una seconda tabella, in K44 e successivi, attinge dalla tabella dati ma usando solo i dati filtrati della tabella e crea una tabella riepilogativa per fornitore (elenco in colonna K), tipologia di servizio (elenco in colonne L:O) e mese (inserito nella cella evidenziata in Giallo)
Con riferimento a queste tabelle, le formule sono:
in L38
- Codice: Seleziona tutto
=SOMMA.PIÙ.SE(TabellaOrigine[C];TabellaOrigine[[Operatore]:[Operatore]];$K38;TabellaOrigine[[Mese]:[Mese]];$L$36)
Poi va copiata nelle celle adiacenti (M-N-O) "tirandola" dal piccolo quadratino visibile (quando la cella e' selezionata) in basso a dx:
Se invece si usasse il normale Contr-C e Contr-V allora i riferimenti alle colonne della tabella rimarrebbero fissi (alla colonna [C]) e le formule dovrebbero essere modificate manualmente per far riferimento alle colonne [R], [Qli], [Valore] di TabellaOrigine
Si noti che l'uso di TabellaOrigine[C] nella formula consente di indirizzare l'intera colonna [C] della tabella, qualsiasi sia la sua altezza (numero di righe).
La formula in L45 e' piu' complessa, volendo indirizzare solo le righe della tabella dati che siano visibili:
- Codice: Seleziona tutto
=MATR.SOMMA.PRODOTTO(--(TabellaOrigine[[Operatore]:[Operatore]]=$K45);--(TabellaOrigine[[Mese]:[Mese]]=$L$43);SUBTOTALE(109;SCARTO(TabellaOrigine[C];RIF.RIGA(TabellaOrigine[C])-MIN(RIF.RIGA(TabellaOrigine[C]));0;1;1)))
Va poi copiata con lo stesso metodo descritto prima
Insomma secondo me devi liberarti dal vincolo di scrivere le informazioni nelle righe della data e nelle colonne del fornitore di servizio (come si fa con le schede cartacee) e passare a una registrazione analitica; da questa tabella analitica ti organizzi i dati usando tabella pivot e suoi accessori oppure una tabella calcolata con formule piu' o meno convenzionali.
Il file di cui parlo e' scaricabile qui:
https://www.dropbox.com/s/9a1flbpqnl0os ... .xlsm?dl=0Ciao