[Risolto] Elenco personale: report con condizioni multiple

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

[Risolto] Elenco personale: report con condizioni multiple

Messaggio da pinimbe »

Salve a tutti.
Lavoro in una amministrazione comunale.
Ho inserito in un foglio di calcolo i dati di tutto il personale.
Allego struttura del file, con dati ovviamente fittizi.

Dall'elenco personale dovrei ricavare un report che soddisfi multiple condizioni.

Queste condizioni dovrebbero darmi la "fotografia" - ad una certa data - del pesonale in servizio presso l'amministrazione comunale in cui lavoro, con la seguente precisazione: alcuni lavoratori, prima di essere inquadrati a tempo indeterminato in organico, prestavano lavoro con contratto a tempo determinato; da ciò la necessità dei due campi "Data primo contratto tempo determinato" e "Data inquadramento a tempo indeterminato"
Per personale in servizio quindi si intende quello che con qualunque tipologia di contratto (a tempo determinato o indeterminato) era in servizio ad una data "X"

NEllo specifico, dovrei inserire le formule e strutturare il foglio in maniera che mi fornisca i dati necessari a compilare il file pdf allegato "prospetto_dati_richiesti"

Nel mio comune non esistono "Dirigenti" ma solamente "Responsabili di Posizioni Organizzative", che nel foglio di calcolo, nella colonna "Profilo Professionale" sono indicati come "Resp. P.O."

Come si può osservare (e sono le informazioni che mi interessano) dal PDF vegono richiesti anno per anno (dal 2016 al 2019),

- numero di "Posizioni Organizzative"
- numero di "Dipendenti" in servizio

Età media
- "Posizioni Organizzative"
- "Dipendenti" in servizio

Analisi di genere
- % Pos. Org. donne sul totale P.O.
- % donne assunte sul totale del personale
- % donne assunte a tempo determinato su totale dipendenti assunti

Le altre informazioni richieste (indici di assenza, spesa del personale) sono di pertinenza di altri colleghi e ci penseranno loro.

I filtri standard (ci ho provato) non consentono di ottenere il dettaglio di tutte le informazioni richieste.

Inoltre, sarebbe utile poter strutturare il foglio in maniera che la data "X" (quella a cui scattare la foto della situazione) non sia prefissata ma possa essere inserita dall'utente a piacimento. Questo per usi futuri sganciati dal report che mi richiede il pdf allegato.

Grazie a tutti in anticipo per l'aiuto che mi offrirete
Allegati
ELENCO_COMPLETO_PERSONALE_Forum.ods
(17.51 KiB) Scaricato 142 volte
prospetto_dati_richiesti.pdf
(220.26 KiB) Scaricato 124 volte
Ultima modifica di charlie il giovedì 29 agosto 2019, 7:44, modificato 2 volte in totale.
Motivazione: Aggiunto [Risolto].
openoffice versione 4.1.5 su Windows 10
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1719
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Elenco personale: creazione report con condizioni multip

Messaggio da gioh66 »

Buondì! Allega un file odt con il prospetto che hai nel pdf in modo da poterci lavorare. Col pdf non ci fai niente, salvo vedere come è la struttura.
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661

Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Elenco personale: creazione report con condizioni multip

Messaggio da charlie »

Ciao @pinimbe e benvenuto/a sul forum.
Se intanto ti vuoi presentare puoi farlo in questa sezione -> viewforum.php?f=16
Per una panoramica delle regole del forum puoi consultare il Manuale di sopravvivenza -> http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2

Buon proseguimento.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

charlie ha scritto:Ciao @pinimbe e benvenuto/a sul forum.
Se intanto ti vuoi presentare puoi farlo in questa sezione -> viewforum.php?f=16
Per una panoramica delle regole del forum puoi consultare il Manuale di sopravvivenza -> http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.
Grazie Charlie, mi sono presentato nell'apposita sezione.

Ho fatto qualche ricerca ma non sono venuto a capo del problema.

Io uso OpenOffice 4.1.5 su Windows XP (!!!! eh si, in ufficio abbiamo ancora questo sistema operativo)
che gira su Pentium Dual CPU 1.80 GHz e 3 GB di RAM
gioh66 ha scritto:Buondì! Allega un file odt con il prospetto che hai nel pdf in modo da poterci lavorare. Col pdf non ci fai niente, salvo vedere come è la struttura.


Adesso provvedo.
Grazie.
openoffice versione 4.1.5 su Windows 10
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

Ecco il report in formato .ods.
Grazie in anticipo
Allegati
report_dati_richiesti.ods
(17.13 KiB) Scaricato 146 volte
openoffice versione 4.1.5 su Windows 10
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

Ho in parte ottenuto i risultati voluti utilizzando il filtro speciale.
Ma i problemi sorgono quando debbo impostare il criterio di ricerca "cella vuota" per filtrare i nominativi che nella colonna "Data cessazione servizio" non hanno dati (perché ancora in servizio).
Inserendo ="" non ottengo il risultato sperato (non mi mostra nessun dato)
Dov'è l'errore?
openoffice versione 4.1.5 su Windows 10
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

Ho implementato credo meglio il foglio.

Quello che vorrei ottenere è visualizzare il personale in servizio ad una certa data,
che nel file di esempio l'operatore può impostare nella cella D29.

Il criterio logico da seguire è che la data in D29 deve essere:
- maggiore del valore in colonna M con titolo "Data primo contratto a t.d." (posto che qualcuno degli impiegati, prima di essere stato assunto a tempo indeterminato, era titolare di contratto a tempo determinato, ma era da considerarsi comunque in servizio); la colonna M può anche contenere celle vuote in quanto il personale può essere stato assunto subito con contratto a tempo indeterminato (
- maggiore del valore in colonna O con titolo "Data inquadramento" (data di assunzione a tempo indeterminato, ossia di inquadramento in pianta stabile)
- minore della data in colonna Q con titolo "Data cessazione servizio", che può anche non contenere alcun valore, se il dipendente è ovviamente ancora in servizio.

Non riesco ad ottenere il risultato sperato inserendo i criteri nell'area specificata come filtro, nel caso B19:S22, come da file modificato che allego.

Quello che sicuramente mi crea problemi (oltre a altri errori che certamente avrò fatto) è la presenza di celle senza valori..

Vorrei anche poi che, in base alla data inserita in D29, il foglio calcolasse (come da allegato da cella B33 a B49):

N. dipendenti totali:

N. donne:

N. uomini

Età media uomini:

Età media donne

N. Responsabili P.O.

Totale Area Amministrativa

Totale Area Tecnica

Totale Area Finanziaria

Grazie in anticipo a chi mi darà una mano.
Allegati
ELENCO_COMPLETO_PERSONALE_Forum.ods
(15.77 KiB) Scaricato 133 volte
openoffice versione 4.1.5 su Windows 10
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1719
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Elenco personale: creazione report con condizioni multip

Messaggio da gioh66 »

Buondì, prova a vedere se può andare così. L'ho fatto con formule basate su MATR.SOMMA.PRODOTTO.
Allegati
ELENCO_COMPLETO_PERSONALE_Forum (bis_1).ods
(18.05 KiB) Scaricato 138 volte
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661

Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

gioh66 ha scritto:Buondì, prova a vedere se può andare così. L'ho fatto con formule basate su MATR.SOMMA.PRODOTTO.
Ti ringrazio moltissimo per il contributo. Sono laureato in giurisprudenza e quindi poca dimestichezza con funzioni avanzate CALC: non conoscevo manco esistenza di "MATR.SOMMA.PRODOTTO" :D
Me la studierò.

Ma a parte il report che hai implementato tu (mancherebbero i dati sull'età media :mrgreen: ), puoi spiegarmi cosa sbagliavo nell'impostare il filtro speciale?
Il risultato è che, per come ho impostato le condizioni nel foglio allegato, mi nasconde tutte le righe dell'elenco... :crazy:
openoffice versione 4.1.5 su Windows 10
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1719
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Elenco personale: creazione report con condizioni multip

Messaggio da gioh66 »

Non saprei dirti cosa sbagli applicando il filtro, nel file non lo vedo. Per l'età media ho aggiunto i risultati nel nuovo allegato.
Allegati
ELENCO_COMPLETO_PERSONALE_Forum (bis_2).ods
(18.29 KiB) Scaricato 122 volte
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661

Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

gioh66 ha scritto:[...] Per l'età media ho aggiunto i risultati nel nuovo allegato.
Grazie mille ancora del tempo ed energie metali impiegate, ma se non ti spiace vorrei capire una cosa.

Qualsiasi impiegato ha una data di inizio della carriera ed una data di fine:
La data di inizio può essere costituita da:
- "Data primo contratto t.d." in colonna M (se il soggetto è passato prima dal calvario del part-time)
- "Data inquadramento" in colonna O, da tenere in considerazione, come inizio carriera, solo se il soggetto è stato assunto subito a tempo indeterminato (e quindi per quel soggetto il campo "Data primo contratto a t.d." non è valorizzato)

La data di fine carriera in colonna Q dal titolo "Data cessazione servizio" può essere:
- valorizzata ad una certa data;
- senza valore, a significare che il soggetto non è cessato dal servizio

Nella formula MATR.SOMMA.PRODOTTO che hai implementato, non vedo riferimenti alla colonna "O" con intestazione "Data inquadramento", che pure è un dato significante
Siccome non capisco la formula ti chiedo se l'omissione è voluta (e magari se puoi anche darmi una spiegazione del funzionamento della formula stessa. Oltre che essere laureato in legge, vengo anche dal liceo classico. Quindi di calcoli matriciali ecc. mi pare di non averne mai masticato :mrgreen: ).

Comunque mi sono accorto di aver scritto una castroneria quando, nel mio intervento di oggi mercoledì 14 agosto 2019, 10:39, ho indicato quello che secondo me era il criterio logico su cui impostare la formula:
Il criterio logico da seguire è che la data in D29 deve essere:
- maggiore del valore in colonna M con titolo "Data primo contratto a t.d." (posto che qualcuno degli impiegati, prima di essere stato assunto a tempo indeterminato, era titolare di contratto a tempo determinato, ma era da considerarsi comunque in servizio); la colonna M può anche contenere celle vuote in quanto il personale può essere stato assunto subito con contratto a tempo indeterminato (
- maggiore del valore in colonna O con titolo "Data inquadramento" (data di assunzione a tempo indeterminato, ossia di inquadramento in pianta stabile)
- minore della data in colonna Q con titolo "Data cessazione servizio", che può anche non contenere alcun valore, se il dipendente è ovviamente ancora in servizio.
Ovviamente la data che l'utente inserisce in D29 non deve essere maggiore o minore di nessuno dei valori inseriti nelle colonne M, O o Q; è una data arbitraria che il foglio di calcolo deve usare per i confronti. Potrei anche inserire 01/01/1800 ed il risultato dovrebbe essere: N. dipendenti totali=0 :D
gioh66 ha scritto:Non saprei dirti cosa sbagli applicando il filtro, nel file non lo vedo.
Il filtro è impostato nell'immagine allegata, area celle cerchiata in rosso, area B19:S20 (è presente nello stesso file che mi hai allegato tu).
L'area la imposto come Filtro Speciale/Laggi i criteri filtro da..
Allegati
area_criteri_filtro_speciale.jpg
openoffice versione 4.1.5 su Windows 10
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1719
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Elenco personale: creazione report con condizioni multip

Messaggio da gioh66 »

Buondì, effettivamente non ho implementato i valori di colonna O questo può generare un errore in quanto le celle vuote vengono considerate come 0, che in formato data corrisponde al 30/12/1899. Per tanto ho modificato le formule in modo che mi conteggi la data di inizio sommando chi ha iniziato con un t.d. con chi ha avuto un impiego a tempo indeterminato da subito, escludendo però chi ha iniziato con un t.d.
Vediamo se riesco a spigarti la formula, prendendo ad esempio quella per gli impiegati totali
=MATR.SOMMA.PRODOTTO((M4:M15<D27)*(M4:M15<>"")+(O4:O15<D27)*(M4:M15=""))-MATR.SOMMA.PRODOTTO((Q4:Q15<D29)*(Q4:Q15<>""))
Allora con il primo MATR.SOMMA.PRODOTTO gli chiedo di indicarmi chi alla data impostata per la verifica (D27) era assunto con t.d. [(M4:M15<D27)] escludendo le celle vuote [*(M4:M15<>"")] e sommando chi ha una data di inquadramento minore di D27 [(O4:O15<D27)] che in colonna M corrisponde a una cella vuota [*(M4:M15="")]. Al numero così ottenuto gli sottraggo, con il secondo MATR.SOMMA.PRODOTTO, chi ha una data di cessazione servizio inferiore alla data di confronto [(Q4:Q15<D29)] escludendo le celle vuote [(Q4:Q15<>"")].

Nelle funzioni sotto ho aggiunto alla formula le varie condizioni, tipo per sapere quanti donne [*(D4:D15="F")] e similmente per le altre.

Ps.: una cosa importante per capire la logica della formula: le varie condizioni (ad esempio (M4:M15<D27)) generano dei VERO e dei FALSO (1 e 0) che il MATR.SOMMA.PRODOTTO va poi a sommare.
Ti riallego il file con le formule corrette.

...per quanto riguarda il filtro è ancora buoi totale, non ho capito come lo applichi, d'altronde è uno strumento che non ho mai usato. :crazy: :mrgreen:
Allegati
ELENCO_COMPLETO_PERSONALE_Forum (bis_3).ods
(18.31 KiB) Scaricato 112 volte
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661

Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

gioh66 ha scritto:Buondì, effettivamente non ho implementato i valori di colonna O questo può generare un errore in quanto le celle vuote vengono considerate come 0, che in formato data corrisponde al 30/12/1899. Per tanto ho modificato le formule in modo che mi conteggi la data di inizio sommando chi ha iniziato con un t.d. con chi ha avuto un impiego a tempo indeterminato da subito, escludendo però chi ha iniziato con un t.d.
Vediamo se riesco a spigarti la formula, prendendo ad esempio quella per gli impiegati totali
=MATR.SOMMA.PRODOTTO((M4:M15<D27)*(M4:M15<>"")+(O4:O15<D27)*(M4:M15=""))-MATR.SOMMA.PRODOTTO((Q4:Q15<D29)*(Q4:Q15<>""))
Allora con il primo MATR.SOMMA.PRODOTTO gli chiedo di indicarmi chi alla data impostata per la verifica (D27) era assunto con t.d. [(M4:M15<D27)] escludendo le celle vuote [*(M4:M15<>"")] e sommando chi ha una data di inquadramento minore di D27 [(O4:O15<D27)] che in colonna M corrisponde a una cella vuota [*(M4:M15="")]. Al numero così ottenuto gli sottraggo, con il secondo MATR.SOMMA.PRODOTTO, chi ha una data di cessazione servizio inferiore alla data di confronto [(Q4:Q15<D29)] escludendo le celle vuote [(Q4:Q15<>"")].

Nelle funzioni sotto ho aggiunto alla formula le varie condizioni, tipo per sapere quanti donne [*(D4:D15="F")] e similmente per le altre.

Ps.: una cosa importante per capire la logica della formula: le varie condizioni (ad esempio (M4:M15<D27)) generano dei VERO e dei FALSO (1 e 0) che il MATR.SOMMA.PRODOTTO va poi a sommare.
Ti riallego il file con le formule corrette.
Grazie davvero.
Mi hai incuriosito e sono andato a cercare materiale
https://www.youtube.com/watch?time_cont ... r4bOBwAUP8

Ora ho capito: praticamente quanto il test è FALSO dà risultato 0 e quindi la riga non viene conteggiata.
Per me uomo di diritto è come scoprire un universo nuovo ad ogni spiegazione: magari per chi è del mestiere sono banalità
Peraltro ho visto che la funzione MATR.SOMMA.PRODOTTO viene proprio usata per gestire i database. :super:
gioh66 ha scritto: ...per quanto riguarda il filtro è ancora buoi totale, non ho capito come lo applichi, d'altronde è uno strumento che non ho mai usato. :crazy: :mrgreen:
Lascia perdere magari apro un thread apposito.

Quello che mi verrebbe comodo adesso sarebbe, non solo ottenere i conteggi numerici (che la tua elegante soluzione fornisce con precisione). ma anche implementare un meccanismo che elenchi solo le righe che soddisfano la condizione per avere un riscontro visivo immediato degli impiegati in servizio ad una certa data così anche da poter stampare l'elenco
Ci ho provato per l'appunto con filtri standard ed avanzati ma non riesco ad ottenere il risultato voluto.
openoffice versione 4.1.5 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2992
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Elenco personale: creazione report con condizioni multip

Messaggio da lucky63 »

pinimbe ha scritto:Ci ho provato con filtri standard ed avanzati ma non riesco ad ottenere il risultato voluto.
Allego file contenente indicazioni specifiche applicate nell'utilizzo del "Filtro speciale".
0001.png
Notare che, come riportato nel file, ho anche apportato modifiche sulle formule del range D31:D47.
In particolare in cella D31 Utilizzata la funzione Subtotale() anziché Matr.Somma.Prodotto().
Nelle altre celle sottostanti ho corretto un errore delle formule Matr.Somma.Prodotto().

Notare anche che modificando la data della cella D27 i conteggi del range D31:D47 vengono effettuati automaticamente ma rimane da applicare il Filtro Speciale per avere la relativa corrispondenza visiva nella tabella superiore.
Per farlo occorre posizionarsi in una cella qualsiasi della tabella superiore e quindi da:
Menu > Dati > Altri filtri > Filtro speciale > (Se non è stato impostato diversamente l'area dei criteri di filtraggio rimane memorizzata) > confermare con OK.

Volendo il filtro speciale (vedere le sue opzioni) permette di indicare se filtrare i dati di corrispondenza in un altro punto/foglio.

Ho fatto alcuni test e mi sembra a posto.
Fai di test riscontro.
 Editato: ... il testo contenuto nelle celle L34 e L39 va sostituito dal seguente:
Permette di filtrare i dati UGUALI a stringa nulla presenti in colonna Q della tabella (Quindi solo quelli in servizio).
Allego file con la modifica inserita. 
.
Allegati
Test - Filtro speciale con condizioni multiple.ods
(20.61 KiB) Scaricato 88 volte
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

lucky63 ha scritto: Allego file contenente indicazioni specifiche applicate nell'utilizzo del "Filtro speciale".
lucky63 ringrazio molto anche te per il supporto e complimenti, oltretutto, pure per la chiarezza autoesplicativa (veramente ben congegnata) del foglio da te allegato al messaggio di venerdì 16 agosto 2019, 9:26.

Grazie a te ho capito la sintassi per impostare le condizioni nell'area filtro speciale.
Mi riferisco a

Codice: Seleziona tutto

= "=" & ""
e

Codice: Seleziona tutto

= "<" & D27 
inserite nelle celle
M20 e Q20 e O21 e Q22 del file da te allegato al messaggio di venerdì 16 agosto 2019, 9:26.
Nell'help di openoffice non vi sono indicazioni sulla sintassi ed io difatti - sbagliando - inserivo direttamente nelle celle

Codice: Seleziona tutto

=""
e

Codice: Seleziona tutto

<D27
.
Domanda # 1 Dove viene spiegata questa sintassi e perché nelle condizioni non viene accettato l'inserimento diretto dei valori (cioè nel modo sbagliato che seguivo io)?

# 2 Possibili refusi
- Credo che nei Nota Bene alla riga 29 forse tu abbia fatto un refuso
Hai scritto nella cella E29 LE CONDIZIONI INDICATE IN OGNI RIGA DEL FILTRO SPECIALE CORRISPONDONO AL PARAMETRO LOGICO “O” in inglese “OR”
Forse intendevi scrivere COLONNA.

- Alla cella E35 hai scritto "O20" ma credo volessi intendere "M20"

# 3 Condizione da applicare al campo "Data cessazione servizio"
Tu applichi in riga Q20 e Q21 la condizione

Codice: Seleziona tutto

= "=" & ""
che, come scrivi tu
"Permette di filtrare i dati UGUALI a stringa nulla presenti in colonna Q della tabella (QUINDI SOLO QUELLI IN SERVIZIO)"
Ma potrebbe verificarsi il caso che alla "Data alla quale si vuole la situazione" un soggetto fosse ancora in servizio e solo successivamente sia cessato: per questo
dipendente il campo "Data cessazione servizio" oggi (nel presente) contiene un valore e quindi è da considerarsi cessato, ma alla data indicata in D27 doveva essere considerato in servizio.

NEl file di esempio abbiamo la dipendente Esposito Sofia (riga 4) con Data inquadramento 28/05/1979 e data cessazione servizio 01/08/2019

Se io inserisco in D27 la data del 31/07/2019, a questa data la Esposito dovrebbe essere considerata in servizio ed invece scompare dalla visualizzazione.
Quindi c'è un errore nelle impostazioni delle condizioni

# 4 Combinazione delle condizioni ed ordine di valutazione

Aiutatemi e capire se valuto tutte le ipotesi; ciascun dipendente va visualizzato e conteggiato ai fini delle statistiche:

- se la data inserita in D27 è maggiore di "Data primo contratto a t.d." (colonna M) e minore di "Data cessazione servizio" (colonna Q) (se valorizzata) O se la data inserita in D27 è maggiore di "Data primo contratto a t.d." (colonna M) e "Data cessazione servizio" non è valorizzata

Oppure (nel caso che il soggetto non abbia valorizzato il campo "Data primo contratto a t.d.")

- se la data inserita in D27 è maggiore di "Data inquadramento (colonna O) e minore di "Data cessazione servizio" (colonna Q) (se valorizzata) o se la data inserita in D27 è maggiore di "Data inquadramento (colonna O) e "Data cessazione servizio" non è valorizzata

Come si traspongono in sintassi corretta nell'area filtri speciali queste condizioni e come si fanno leggere nell'ordine corretto a CALC?

Ancora, se per assurdo inserisco in D27 il 30/03/1977 (ad. es.), ossia una data anteriore a quella del primo contratto presente nell'elenco (Romano Aurora, riga 6, data inquadramento 31/03/1977), e se le condizioni fossero impostate correttamente dovrei avere 0 in tutti i dati del report, invece come si può verificare così non è.
Quindi ci deve essere un errore di impostazione da qualche parte.

Grazie ancora per la pazienza
openoffice versione 4.1.5 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2992
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Elenco personale: creazione report con condizioni multip

Messaggio da lucky63 »

R.# 1
In precedenti esigenze avevo rilevato anche io l'incongruenza che non accettava l'inserimento "diretto" e per questo avevo provveduto tramite concatenamento (&).

R.# 2
Come hai rilevato:
- nella cella E29 era intesa l'indicazione "Colonna" (errore dovuto al copia incolla della riga soprastante poi modificata nella sola parte terminale e non anche nel termine "Riga");
- nella cella E35 era intesa l'indicazione M20;

R.# 3
Questo tuo passaggio mi aveva "distratto" e tratto in inganno:
pinimbe ha scritto:Ma i problemi sorgono quando debbo impostare il criterio di ricerca "cella vuota" per filtrare i nominativi che nella colonna "Data cessazione servizio" non hanno dati (perché ancora in servizio).
Inserendo ="" non ottengo il risultato sperato (non mi mostra nessun dato)
Dov'è l'errore?
Nell'applicare le condizioni del filtro speciale (e le formule per le statistiche) nel file precedente avevo erroneamente inteso servisse il solo riscontro relativo al personale ancora in servizio ...

R.# 4
pinimbe ha scritto:... ottenere ... "fotografia" - ad una certa data - del personale in servizio .... - Per personale in servizio si intende quello che con qualunque tipologia di contratto (a tempo determinato o indeterminato) era in servizio ad una data "X"
... quindi la data di rilevazione è ininfluente rispetto a quella di cessazione ed è l'unica condizione da applicare nel filtro speciale per filtrare "visivamente" le relative corrispondenze in "Data primo contratto" Oppure in "Data inquadramento" ...

Ho apportato (credo esattamente) tale correzione nei parametri del filtro speciale e fatto test con le date segnalate ( 30/03/1977 - 31/07/2019) mi sembra OK. ... fai altri test ...
.
Allegati
Test - Filtro speciale con condizioni multiple-01.ods
(20.21 KiB) Scaricato 76 volte
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

lucky63 ha scritto: [...]
R.# 1
In precedenti esigenze avevo rilevato anche io l'incongruenza che non accettava l'inserimento "diretto" e per questo avevo provveduto tramite concatenamento (&).
Quindi, sono trattate come delle stringhe, se ho capito bene.
lucky63 ha scritto: R.# 4
... quindi la data di rilevazione è ininfluente rispetto a quella di cessazione ed è l'unica condizione da applicare nel filtro speciale per filtrare "visivamente" le relative corrispondenze in "Data primo contratto" Oppure in "Data inquadramento" ...
Scusami, la data di rilevazione è influente eccome rispetto a quella di cessazione.
Prendi il caso di Esposito Sofia, riga 4, cessata dal servizio il 01/08/2019.
Se io imposto come data di rilevazione una qualsiasi data successiva al 01/08/2019, poniamo oggi 17/08/2019, la Esposito deve risultare non più in servizio.
Ma per come è impostato il filtro speciale (che controlla solo se D27 < "Data primo contratto" o se D27 < "Data inquadramento" ...) questa verifica non viene effettuata.

Quindi ritengo che ci sia un vizio di logica in quanto riportato da te in cella L31:
lucky63 ha scritto: il loro combinato su due righe diverse permette di applicare nel filtro speciale la condizione “O” filtrando solo chi fosse sotto contratto o inquadrato alla data impostata indipendentemente che risulti o meno cessato dal servizio.
Non trovo altro modo per individuare il nocciolo del problema se non come appresso:
pinimbe ha scritto:... ottenere ... "fotografia" - ad una certa data - del personale in servizio .... - Per personale in servizio si intende quello che con qualunque tipologia di contratto (a tempo determinato o indeterminato) era in servizio ad una data "X"
Nel senso che per essere conteggiato e visualizzato, il dipendente, alla data di rilevazione, deve essere già titolare di contratto (con tutte le verifiche del caso su "Data primo contratto t.d." e "Data inquadramento" ) e non ancora cessato (con le conseguenti verifiche sulla colonna "Data cessazione servizio")

E' corretto quanto da me osservato?
openoffice versione 4.1.5 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2992
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Elenco personale: creazione report con condizioni multip

Messaggio da lucky63 »

pinimbe ha scritto:per essere conteggiato e visualizzato, il dipendente, alla data di rilevazione, deve essere già titolare di contratto (con tutte le verifiche del caso su "Data primo contratto t.d." e "Data inquadramento" ) e non ancora cessato (con le conseguenti verifiche sulla colonna "Data cessazione servizio")
Ho aggiunto una colonna in cui vengono effettuati i riscontri relativi alla data di riferimento e che poi possono essere filtrati.
I dati statistici si aggiornano automaticamente già all'inserimento della data.
Questa la logica applicata (tradotta in formule):
Se la data impostata risulta superiore alla data di primo contratto o superiore alla data di inquadramento e contestualmente inferiore alla data di congedo allora è VERO che il nominativo risultava in servizio a quella data altrimento non lo era (esito FALSO).
Altre indicazioni riportate all'interno del file.
.
Allegati
Test - Statistiche 01.ods
(20.88 KiB) Scaricato 81 volte
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2992
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Elenco personale: creazione report con condizioni multip

Messaggio da lucky63 »

.
Modifiche apportate rispetto alla versione precedente:

- Data di verifica (Cella D18) impostata “Verifica validità data inserita” tra 01/01/1900 e 01/01/2100;
- Età media Uomini = 0 se Nr Uomini = 0 altrimenti indica l'età media Uomini
- Età media Donne = 0 se Nr Donne = 0 altrimenti indica l'età media Donne.
.
Allegati
Test - Statistiche 02.ods
(21.37 KiB) Scaricato 89 volte
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

lucky63 ha scritto: Ho aggiunto una colonna in cui vengono effettuati i riscontri relativi alla data di riferimento e che poi possono essere filtrati.
I dati statistici si aggiornano automaticamente già all'inserimento della data.
Questa la logica applicata (tradotta in formule):
Se la data impostata risulta superiore alla data di primo contratto o superiore alla data di inquadramento e contestualmente inferiore alla data di congedo allora è VERO che il nominativo risultava in servizio a quella data altrimento non lo era (esito FALSO).
Altre indicazioni riportate all'interno del file.
.
Grazie lucky63, gentilissimo.
Sembra tutto funzionare.
Capita la logica in termini discorsivi, sto cercando di studiare le tua traduzione in formule (non conoscevo la funzione "E" ed "O").
#1 Mi ci devo mettere un pò senza distrazioni per tentare di capire il meccanismo: se hai dei suggerimenti o spiegazioni da dare come se avessi davanti un bambino, fallo pure; mi riferisco in particolare alla formula "chiave"

Codice: Seleziona tutto

=E(SE(O($D$18<R4;R4="")) ; O(SE(E(N4<>"";$D$18>=N4)) ; SE($D$18>=P4)))
inserita nel range di celle G4:G15

#2 A proposito, perché in G4 la formula inizia con un solo "=", mentre nelle celle sottostanti del range inizia con doppio "=="?


#3 Deduco che non fosse possibile effettuare i controlli ed "annidare" le condizioni SE tramite filtro speciale.

lucky63 ha scritto:.
Modifiche apportate rispetto alla versione precedente:

- Data di verifica (Cella D18) impostata “Verifica validità data inserita” tra 01/01/1900 e 01/01/2100;
.
#4 Non trovo in quale cella hai impostato la verifica di cui parli.

Detto questo per me si può considerare risolto a meno che qualcuno non abbia il tempo e la voglia di indicare altre vie per giungere alla stessa soluzione (ma solo per aumentare la conoscenza di cosa si possa fare con Calc, non perché la soluzione di lucky63 non sia ottima).

P.S. Corretto errore nel Calcolo dell'età.
Nel range F4:F15) avevo inserito la formula

Codice: Seleziona tutto

=ANNI(E4;OGGI();0)
che ovviamente mi restituiva l'età alla data attuale.
Ho corretto con

Codice: Seleziona tutto

=ANNI(E4;D18;0)
che mi fornisce l'età del dipendente alla data di verifica (D18)
openoffice versione 4.1.5 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2992
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Elenco personale: creazione report con condizioni multip

Messaggio da lucky63 »

.
R.#4
La verifica della validità della data inserita in cella D18 è implementata nella stessa cella D18.
Seleziona la cella D18 e poi verifica le impostazioni in ... Menu > Dati > Validità:
- Criteri
- Messaggio di errore
Test - Statistiche 03.png
Cosi facendo in cella D18 potrai inserire solo una "data valida" compresa in quel range.
Per vederne l'effetto pratico prova a inserire una data errata e/o fuori dal range impostato nella validità.
Dati statistici e verifiche (Vero/Falso) in tabella saranno quindi riferiti con certezza a una "data valida" già verificata dalla validità dati.

R.#3
Ho preferito cambiare strategia trovando "più semplice" implementare le formule da adottare sia in tabella (per il riscontro Vero/Falso) che nelle statistiche (per ogni specifico risultato le formule applicate sono più semplici / brevi ...).

R.#2
Trattandosi di formula nidificata con molteplici condizioni da verificare in modo incrociato avevo inizialmente implementato le singole verifiche in celle separate nella riga 4.
Assemblandole in un'unica formula questa è stata inserita in cella G4 e poi replicata nel range G4:G15 con il copia/incolla (la formula si adatta automaticamente grazie all'uso combinato di riferimenti relativi e assoluti. In merito vedasi l'uso del simbolo $ nella formula.)
In un secondo momento mi sono accorto del doppio "=", di per se ininfluente, provvedendo a toglierlo (unitamente ad alcuni spazi di troppo) nella sola cella G4 per poi replicare il tutto anche in quelle sottostanti con il copia incolla della cella G4 fino alla cella G15 (... quest'ultima operazione di fatto è stata dimenticata / non eseguita...).
Se vuoi conformare il tutto è sufficiente ricopiare cella G4 nelle celle sottostanti fino a G15 e le formule si adattano automaticamente.

R.#1
Come detto al punto precedente, trattandosi di formula nidificata con molteplici condizioni da verificare in modo incrociato, suggerisco di suddividerla applicandone i singoli blocchi in celle separate della riga 4 per averne gli specifici riscontri ...

-----
Sopra la colonna G ho inserito la possibilità di nascondere/visualizzare velocemente la colonna G cliccando sul simbolo -/+
-----
pinimbe ha scritto:...per me si può considerare risolto...
Vedi questo link: viewtopic.php?f=2&t=5661

Allego file con gli aggiornamenti.
.
Allegati
Test - Statistiche 03.ods
(21.23 KiB) Scaricato 110 volte
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

lucky63 ha scritto:.
[...]
R.#4
La verifica della validità della data inserita in cella D18 è implementata nella stessa cella D18.
Seleziona la cella D18 e poi verifica le impostazioni in ... Menu > Dati > Validità:
- Criteri
- Messaggio di errore

OTTIMO. Imparata cosa nuova.


R.#3
Ho preferito cambiare strategia trovando "più semplice" implementare le formule da adottare sia in tabella (per il riscontro Vero/Falso) che nelle statistiche (per ogni specifico risultato le formule applicate sono più semplici / brevi ...).

Ma teoricamente fattibile? Sbagliavo la sintassi, non usando la concatenazione, ma in ogni caso non avrei saputo come impostare le condizioni nidificate col filtro speciale


[...]

R.#1
Come detto al punto precedente, trattandosi di formula nidificata con molteplici condizioni da verificare in modo incrociato, suggerisco di suddividerla applicandone i singoli blocchi in celle separate della riga 4 per averne gli specifici riscontri ...

Come applicare questo suggerimento?

[...]
pinimbe ha scritto:...per me si può considerare risolto...
Vedi questo link: viewtopic.php?f=2&t=5661

[...]
Io cambio titolo in RISOLTO a condizione che imposti una condizione, che ci dica ai primi di settembre quale sarà il "Governo in servizio" :D


.
openoffice versione 4.1.5 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2992
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Elenco personale: creazione report con condizioni multip

Messaggio da lucky63 »

.
pinimbe ha scritto:Come applicare questo suggerimento?
Sulla destra della tua tabella ho scomposto i riscontri principali (vedasi immagine) e forse così risulta più comprensibile.

Test - Statistiche 04.png
Allegati
Test - Statistiche 04.ods
(22.46 KiB) Scaricato 109 volte
pinimbe
Messaggi: 41
Iscritto il: martedì 29 gennaio 2019, 15:46

Re: Elenco personale: creazione report con condizioni multip

Messaggio da pinimbe »

lucky63 ha scritto:.
pinimbe ha scritto:Come applicare questo suggerimento?
Sulla destra della tua tabella ho scomposto i riscontri principali (vedasi immagine) e forse così risulta più comprensibile.

Test - Statistiche 04.png
Grazie infinite, pazientissimo oltre che molto bravo!! :bravo:
(vabbeh, lascia perdere condizione per conoscere Governo in servizio nel futuro; ma mi sa che se ti ci mettevi, escogitavi un algoritmo anche per questo :D )

Saluti a tutti.
Risolto con piena soddisfazione!! ;)
openoffice versione 4.1.5 su Windows 10
Rispondi