Vai al contenuto
PLC Forum


Arrotondamento Ore Minuti Con Sistema Binario


trittico6969

Messaggi consigliati

In tre celle F10-G10-H10, di excel 2003, dove tramite formule vi sono ore e minuti, bisogna far in modo che se in una cella i minuti superano i 30 arrotondare in eccesso le ore, ma ovviamente solo nella cella ove vi sono i minuti e nel caso in cui nelle altre due i minuti risultano 0.

Se invece i minuti si trovano nella prima e nella seconda cella e la loro somma è >30 ma inferiore a un ora incrementare la prima cella di 1, nel caso in cui la somma è maggiore di ore 1 incrementare la seconda.

Terzo caso, se i minuti si trovano nella prima e nella terza cella e la loro somma è >30 ma inferiore a un ora incrementare la seconda cella di 1, nel caso in cui la somma è maggiore di ore 1 incrementare la terza.

Quarto caso , se i minuti si trovano nella seconda e nella terza cella e la loro somma è >30 ma inferiore a un ora incrementare la seconda cella di 1, nel caso in cui la somma è maggiore di ore 1 incrementare la terza

Quinto caso, se i minuti si trovano in tutte le celle e la loro somma è >30 ma inferiore a un ora incrementare la seconda cella di 1, nel caso in cui la somma è maggiore di ore 1 incrementare la terza

Sesto caso se i minuti si trovano in tutte le celle e la loro somma è >60 ma inferiore a 90 incrementare la terza cella di 1, nel caso in cui la somma è maggiore di 90 incrementare la seconda e la terza

Settimo caso se i minuti si trovano in tutte le celle e la loro somma è >90 ma inferiore a 120 incrementare la terza cella di 2, nel caso in cui la somma è maggiore di 120 incrementare la seconda di 1 e la terza di 2

allego il file originale..ho messo orari di lavoro nelle prime tre settimane di gennaio

Le celle interessate sono AG31-AH31-AI31 e il risultato dovrebbe comparire in F10-G10-H10

http://uploading.com/files/25dmd67m/Cartel11.rar/

mi hanno consigliato l’esempio sotto e non vorrei usare VBA ma non sono capace di riportarlo nel file originale

con "una logica a stato", cioe':

-ti fai una tabellina con 7 colonne, che contengono 1/0 secondo le seguente logica:

--1, 2, 3 e 4: somma minuti compresa tra 1-30; compresa tra 31-60; compresa tra 61-90; compresa tra 91-120

--5, 6, 7: minuti presenti in col A, col B, col C

-crei tante righe ognuna con le combinazioni di 1/0 secondo le casistiche che credi di dover gestire (e secondo me sono piu' delle sette che hai citato)

Nella colonna adiacente calcoli lo "stato" in binario con la formula

Codice: Seleziona tutto

=(J17&K17&L17&M17&N17&O17&P17)

(J17:P17 sono le celle in cui io ho cominciato a caricare la tabella di stato, adatta alla tua situazione e ho inserito questa formula in R17)

Nelle 3 colonne adiacenti scrivi il delta-ore da applicare alle colonne A-B-C in quella situazione

La mia tabella, per le prime 3 righe, e' la seguente:

Teoricamente potresti scrivere direttamente lo stato in binario (es 0100100), ma probabilmente dopo un po' non collegheresti facilmente lo stato alla condizione.

Finito questo lavoro preparatorio, torni sul tuo foglio da lavoro e calcoli "lo stato" equivalente di ogni tua riga di dati, cioe' determini la fascia di minuti in cui la riga si colloca e quali colonne hanno minuti.

Per questo:

-in I1 ho calcolato la somma dei minuti con l formula =SOMMA(MINUTO(A1)+MINUTO(B1)+MINUTO(C1))

-in J1 ho calcolato se appartiene alla fascia 1-30 con la formula =SE(E($I1<31;$I1>0);1;0)

-in K1 ho calcolato se appartiene alla fascia 31-60 con la formula =SE(E($I1<61;$I1>30);1;0)

-in L1 ed M2 ho usato formule analoghe per le fasce 61-90 e 91-120

-in N1 ho calcolato se A1 contiene minuti, con la formula =SE(MINUTO(A1)>0;1;0)

-in O1 e P1 formule analoghe per B1 e C1

-in Q1 ho calcolato lo "stato" equivalente con la formula =(J1&K1&L1&M1&N1&O1&P1)

Ovviamente puoi condensare piu' calcoli nella stessa clla, es inserire direttamente nella formula "concatena" (ora in Q1) le formule inserite in J1, K1, etc.

A questo punto, e siamo alla fine, in E1, F1 e G1 calcoli le ore sommando le ore di A1, B1 e C1 con il risultato del Cerca.Vert dello "stato" nella tabella Stato/Delta-ore della tabella descritta prima, corrispondente alle col R:U

Link al commento
Condividi su altri siti


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...