Condividi:        

excel 2003 formula funziona solo in alcuni fogli

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 01/01/12 22:51

Ciao a tutti e buone feste fatte….volevo esporvi un problemino che mi sta facendo scervellare…ho fatto un programmino che mi calcola le ore di straordinario e altro per il mio lavoro…ebbene funziona tutto l’anno tranne il 25/12/2011…in pratica lavorando questo giorno mi dovrebbe conteggiare “1” in AW7, esattamente come fa il 01/05/2011…qualcuno puo aiutarmi? Grazie!
http://uploading.com/files/m1me4c49/SER ... mato1.rar/
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Sponsor
 

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Anthony47 » 02/01/12 00:16

Le tue Function (nel caso specifico la SUPERFESTIVI_DOMENICALI_MAT) non tollerano nei range a loro passati come parametri valori non compatibili con le operazioni che vai a eseguire; nel caso specifico non e' compatibile la presenza di valori "" (stringhe vuote) nelle celle A48 e sottostanti (risultati dalla formula SE(A48 etc etc ivi inserita che manda in errore la funzione Giorno.Settimana (Weekday) usata nella funzione.
Per rimediare puoi aggiungere nel codice della SUPERFESTIVI_DOMENICALI_MAT le due istruzioni marcate <<<
Codice: Seleziona tutto
   For Each cl2 In SUPERFESTIVI
If cl <> "" Then   '<<<<<
      If Application.WorksheetFunction.Weekday(cl.Offset(0, -2)) = 1 And _
      cl.Offset(0, -2) = cl2 And cl <> "" Then
       
         tot = tot + 1
         
      End If
End If       '<<<<
   Next cl2

Immagino dovrai fare una cosa analoga con le altre funzioni.
Nel mese di Maggio le celle dopo l' ultima data utile sono vuote (evidentemente le formule sono state cancellate).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 02/01/12 22:23

cosi? o devo modificarli tutti ?
Codice: Seleziona tutto
Public Function FESTIVI_INFRASETTIMANALI_MAT(PRESENZE As Range, FESTIVI As Range)
Dim cl As Range
Dim cl2 As Range
Dim x As Integer
x = 0
For Each cl In PRESENZE
   For Each cl2 In FESTIVI
      If cl.Offset(0, -2) = cl2 And cl <> "" Then
         x = x + 1
         End If
    Next cl2
Next cl
FESTIVI_INFRASETTIMANALI_MAT = x
End Function
Public Function FESTIVI_INFRASETTIMANALI_POM(PRESENZE As Range, FESTIVI As Range)

Dim cl As Range
Dim cl2 As Range
Dim x As Integer
x = 0
For Each cl In PRESENZE
    For Each cl2 In FESTIVI
        If cl.Offset(0, -4) = cl2 And cl <> "" Then
            x = x + 1
        End If
    Next cl2
Next cl
FESTIVI_INFRASETTIMANALI_POM = x
End Function
Public Function FESTIVI_INFRASETTIMANALI_NOT(PRESENZE As Range, FESTIVI As Range)

Dim cl As Range
Dim cl2 As Range
Dim x As Integer
x = 0
For Each cl In PRESENZE
    For Each cl2 In FESTIVI
        If cl.Offset(0, -6) = cl2 And cl <> "" Then
            x = x + 1
         End If
    Next cl2
Next cl
FESTIVI_INFRASETTIMANALI_NOT = x
End Function
Public Function SUPERFESTIVI_DOMENICALI_MAT(PRESENZE As Range, _
SUPERFESTIVI As Range, GIORNI As Range) As Integer
Dim A As Range
Dim cl As Range
Dim cl2 As Range
Dim tot As Integer

For Each cl In PRESENZE
   For Each cl2 In SUPERFESTIVI
   If cl <> "" Then
      If Application.WorksheetFunction.Weekday(cl.Offset(0, -2)) = 1 And _
      cl.Offset(0, -2) = cl2 And cl <> "" Then
       
         tot = tot + 1
         End If
      End If
   Next cl2
Next cl
SUPERFESTIVI_DOMENICALI_MAT = tot
End Function
Public Function SUPERFESTIVI_DOMENICALI_POM(PRESENZE As Range, _
SUPERFESTIVI As Range, GIORNI As Range) As Integer
Dim A As Range
Dim cl As Range
Dim cl2 As Range
Dim tot As Integer

For Each cl In PRESENZE
   For Each cl2 In SUPERFESTIVI
   If cl <> "" Then
      If Application.WorksheetFunction.Weekday(cl.Offset(0, -4)) = 1 And _
      cl.Offset(0, -4) = cl2 And cl <> "" Then
         tot = tot + 1
         End If
      End If
   Next cl2
Next cl
SUPERFESTIVI_DOMENICALI_POM = tot
End Function
Public Function SUPERFESTIVI_DOMENICALI_NOT(PRESENZE As Range, _
SUPERFESTIVI As Range, GIORNI As Range) As Integer
Dim A As Range
Dim cl As Range
Dim cl2 As Range
Dim tot As Integer

For Each cl In PRESENZE
   For Each cl2 In SUPERFESTIVI
   If cl <> "" Then
      If Application.WorksheetFunction.Weekday(cl.Offset(0, -6)) = 1 And _
      cl.Offset(0, -6) = cl2 And cl <> "" Then
         tot = tot + 1
         End If
      End If
   Next cl2
Next cl
SUPERFESTIVI_DOMENICALI_NOT = tot
End Function


Public Function SUPERF_RIPOSO_DOMENICA(SUPERFESTIVI As Range, DATA As Range, _
ASS As Range) As Integer
Dim cl As Range
Dim cl2 As Range
Dim tot As Integer
tot = 0
For Each cl In SUPERFESTIVI
   For Each cl2 In DATA
      If cl = cl2 And cl2.Offset(0, 12) = "R.S." Then
         tot = tot + 1
      End If
   Next cl2
Next cl
SUPERF_RIPOSO_DOMENICA = tot
End Function
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 02/01/12 22:42

Adesso ho fatto il servizio 2012 e a gennaio, esattamente 01/01/2012, mettendo R.I. o un orario lavorativo mi aggiunge un R.R.S. (riposo accumulato se lavoro di domenica) in M3, invece non dovrebbe..puoi aiutarmi anche in questo?
Grazie!
http://uploading.com/files/4b372efb/SER ... B2012.rar/
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Anthony47 » 03/01/12 01:56

Non conosco l' architettura del tuo workbook, ma ho visto che ci sono altre Function che lavorano sui valori di Presenze; devi modificarle tutte inserendo, come ho fatto per la SUPERFESTIVI_DOMENICALI_MAT, il test If cl <> "" Then / End If.

Per quanto riguarda il problema di M3, anche qui non conosco l' architettura complessiva dei tuoi calcoli; rilevo che
-M3 e' 1 perche' in Q21 c' e' 1;
-in Q21 c' e' 1 perche' T21 e' pari a 7 quindi >6;
-in T21 c' e' 7 perche' nelle 7 giornate precedenti risulta sempre un Lavor+Ass >0 (26 e 27 dic sono ore lavorate; dal 27 dic fino a 1 gen sono ore di assenza, col U);
-le assenze vengono indicate essenzialmente perche' in AR13 c' e' 0 e in col J c' e' scritto un codice (20, oppure 2) e ne scaturisce un Cerca.Vert che restituisce (da una tabella precompilata) il valore 6h00m.

Tutto questo per dire che il risultato 1 in M3 scaturisce da una sequenza di formule la cui logica mi e' ignota, non ho quindi nessuna idea di quale di questi step sia errato, come logica o come implementazione. da poterti dare qualsiasi suggerimento. A pancia direi che e' errato l' input che metti in J16-J20, ma e' come aver lanciato dei dadi ottenendo quindi un valore a caso...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 03/01/12 20:47

Il programmino dovrebbe funzionare in questo modo
Intanto per una cosa interna alla mia azienda il calcolo viene effettuato in mese contabile e non in mese solare cioè dal primo all’ultimo del mese..
Se io lavoro di domenica mi deve incrementare di uno in M3ed E7, se invece non lavoro allora non viene incrementato.
Se lavoro un festivo infrasettimanale va incrementato M4,E7 ed E8
Se lavoro un superfestivo si incrementa M4,E7 ed E9
Se il superfestivo capita di domenica M4,E7 ed E9
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Anthony47 » 04/01/12 01:24

Se lavoro un festivo infrasettimanale va incrementato M4,E7 ed E8
Se lavoro un superfestivo si incrementa M4,E7 ed E9

La struttura del tuo file e' molto piu' complessa di quelo che scrivi, con decine di colonne di appoggio la cui utilita' non conosco.
Se ti bastasse quello che hai scritto, allora:
-gia' hai le date in A14:A57
-gia' calcoli in S14:S57 le ore lavorate
-ti creai un intervallo con le date dei Festivi e lo chiami FEST (una sola colonna con le date)
- ti creai un intervallo con le date dei SuperFestivi e lo chiami SUPERFEST (una sola colonna con le date)
Conti i festivi e i superfestivi lavorati rispettivamente con le formule
Codice: Seleziona tutto
=SOMMA(VAL.NUMERO(CONFRONTA(A14:A57;FEST;0))*(S14:S57>0))
=SOMMA(VAL.NUMERO(CONFRONTA(A14:A57;SUPERFEST;0))*(S14:S57>0))

Ambedue son da confermare con Contr-Maiusc-Enter

Non so se ti possono esssere di qualche utilita', temo di no guardando quanto e' articolato il tuo file.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Flash30005 » 04/01/12 02:31

Leggi quanto postato qui sopra da Anthony

Ho voluto sbirciare nel file e non volendo entrare in merito alla marea di formule e dati nonché alla loro disposizione

e limitando alla richiesta ultima (che il 01/01/2012 fornisce un RRS)
ho notato che in T21 vengono calcolati i giorni lavorati che in questo caso sono 7 e subentra quindi l'RRS
perché la formula in T21 non conteggia i giorni festivi (nazionali)
quindi modificherei quella formula e così quelle simili con questa
Codice: Seleziona tutto
=SE(T14>0;1;0)+SE(T15>0;1;0)+SE(T16>0;1;0)+SE(T17>0;1;0)+SE(T18>0;1;0)+SE(T19>0;1;0)+SE(T20>0;1;0)-CONTA.SE(AM$1:AM$12;A14)-CONTA.SE(AM$1:AM$12;A15)-CONTA.SE(AM$1:AM$12;A16)-CONTA.SE(AM$1:AM$12;A17)-CONTA.SE(AM$1:AM$12;A18)-CONTA.SE(AM$1:AM$12;A19)-CONTA.SE(AM$1:AM$12;A20)

Che non fa altro che detrarre i giorni festivi

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 04/01/12 11:10

Anthony la struttura fa molte cose in più di quello che ho detto ma funziona tutto tranne il fatto prima detto.
Le colonne con le date dei festivi e superfestivi sono nel foglio riep e gli intervalli sono gia creati.
Che ne pensi di quello proposto da flash?
Flash ho provato e sembra funzionare per quel giorno…adesso proverò per gli altri giorni e le combinazioni possibili e ti faccio sapere…
Per adesso grazie ad entrambi!
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 04/01/12 11:52

flash ho notato che mi va a modificare le ore di straordinario in M8
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Flash30005 » 04/01/12 12:25

Certo! Perché toglie le 6 ore di RRS che andavi a sottrarre poste in W10
del resto se da una parte non le togli più in quanto non sono RRS
devi trovare la maniera o dirci come vorresti reintegrarle (per detrarle di nuovo)
in effetti cosa sono quelle 6 ore del primo gennaio?

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Anthony47 » 04/01/12 12:44

Intanto non perdere il messaggio di Flash (vedi sopra).

Anthony la struttura fa molte cose in più di quello che ho detto ma funziona tutto tranne il fatto prima detto
...
Che ne pensi di quello proposto da flash?

Trovo la struttura alquanto complessa (contorta?) da poter valutare quanto "funziona" e quanto "sembra che funzioni" (tranquillo, non sono uno jettatore patentato); ma come vedi passando dal 2011 al 2012 sei al secondo problema da risolvere. Solo chi ha costruito quel castello sa valutare l' impatto della forza gravitazionale di una cella sull' insieme delle altre celle; qualsiasi intervento che non tenga conto di come l' insieme funziona rischia di tamponare qua e bucare chisa' dove.
Come esempio di complessita' /contorsione,guarda la formula in Q21: =SE(SE(T21>6;$AN$15;0)=$AN$15;1;0)
Poiche' AN15 contiene un valore orario fisso (cioe' non deriva da una formula) e T21 un "conteggio" numerico intero, la stessa formula "probabilmente" potrebbe essere scritta =SE(T21>6;1;0)
Ma come posso essere certo che quella contorsione non sia invece un sofisticato algoritmo pensato per gestire una situazione nel foglio che a me sfugge ed e' ignota?
Nel messaggio precedente ti avevo spiegato la genesi dell' "1" in M3 sperando che ti si accendesse una lucina; non si puo' accendere in me perche' non conosco il senso del calcolo fatto in T21 [a sua volta semplificabile nella formula Contr-Maiusc-Enter =SOMMA(--(T14:T20>0)) ], ne' del valore caricato nella colonna intestata "C.A." (20, nel caso di J16), ne' delle tabelle AS14:AU105 e AL14:AN105, tutte che impattano direttamente nel calcolo del valore RRS Maturati di M3; ne' del perche' (con quale fine) la "compattazione del servizio" (tabella F3:H13 di RIEP) impatta sul calcolo del servizio (tramite AR13 del foglio mensile).

Tutti motivi che mi fanno pensare che qualsiasi intervento che non conosca e tenga presente tutti i motivi che hanno portato il foglio alla attuale complessita' rischia di essere destabilizzante.

Le colonne con le date dei festivi e superfestivi sono nel foglio riep e gli intervalli sono gia creati
Quelli gia' presenti sono intervalli multicolonna; per funzionare nella formula dimostrativa che ti avevo dato deve essere un intervallo monocolonna, cioe' con solo la colonna della data.

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 04/01/12 17:35

il conteggio avviene settimanalmente e superate le 36 ore il resto è tutto straordinario...
c'è lo straordinario feriale diurno, in F10, quando lavoro dalle 06.00 alle 22.00 ma sempre superando le 36 ore settimanali.....
lo straordinario festivo diurno o notturno feriale, in G10, che rispettivamente va dalle 06.00 alle 22.00 e il notturno non festivo va dalle 22.00 alle 06.00...
lo straordinario festivo notturno, H10, dalle 22.00 alle 06.00...
ecc...
se
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 04/01/12 17:44

Quelli gia' presenti sono intervalli multicolonna; per funzionare nella formula dimostrativa che ti avevo dato deve essere un intervallo monocolonna, cioe' con solo la colonna della data

scusa ma sono su un unica colonna F e precisamente F16:F22 e F24:F35
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Anthony47 » 04/01/12 19:06

Per gli intervalli FESTIVI e SUPERFESTIVI hai ragione (mi ero fatto ingannare dall' intestazione con colonne unite).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 04/01/12 20:18

allora dov'è l'inchippo?
spero che piano piano con il vostro aiuto riusciamo a sistemarlo... fatemi domande dove volete sapere il funzionamento...
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi Flash30005 » 05/01/12 06:12

A mio parere capire tutta la struttura sarebbe complicato proprio perché ci sono moltissime formule collegate tra loro

La difficoltà che incontro è anche l'interpretazione dei vari codici RSS, RI etc etc

quindi mi concentrerei solo ed esclusivamente a questa eccezione 01/01/2012 = Domenica
risolta questa penso che tutto possa tornare a funzionare correttamente (a parte la Pasqua del 2013 che risulta essere il 6 gennaio :eeh: )

Vorrei capire quindi cosa ha più importanza il giorno festivo domenica o il giorno superfestivo 1° gennaio?
Perché se non vuoi l'RSS (credo sia Straordinario Superfestivo) in questa occasione significa che vuoi assegnare allo straordinario Festivo in quanto domenica (?)

Inoltre se dici di voler conteggiare i diversi straordinari notturni/diurni suddivisi tra feriali, festivi e superfestivi quindi dovresti avere i singoli conteggi separati e non come hai fatto in T21 dove conteggi se ci sono 7 giorni lavorati.

Personalmente avrei fatto qualcosa di più lineare: qualche macro in più e molte formule in meno.
Inoltre non avrei mai lasciato due righe vuote ogni sette giorni per fare i totali della settimana, perché si possono usare celle "fuori" dalla sequenza del calendario e non all'interno.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel 2003 formula funziona solo in alcuni fogli

Postdi trittico69 » 05/01/12 13:26

R.S.S. riposo settimanale spettante sarebbe il riposo che accumuli lavorando la domenica
R.S. riposo settimanale che usufruisci non lavorando la domenica
R.I. riposo infrasettimanale quando lavori nei festivi e superfestivi pasqua ecc..
che prevalgono se capitano di domenica e im superfestivo prevale sul festivo.
C.O. concedo ordinario
per quando riguarda im resto dovrebbe trovarsi tutto perchè il servizio del 2011 si trova con quello ufficiale
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41


Torna a Applicazioni Office Windows


Topic correlati a "excel 2003 formula funziona solo in alcuni fogli":


Chi c’è in linea

Visitano il forum: Nessuno e 77 ospiti