Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  89 90 91 92 93 94 95 96 97   další » ... 289

Ja som to spichol takto, s pomocným stĺpcom.
Ak nemáte Office 2019 tak treba MAXIFS a MINIFS nahradiť maticovým vzorcom rovnakej funkcionality. To dajte prípadne vedieť.

Dobrá pakáreň. Obyčajné MAX/MIN alebo MAXIFS/MINIFS nebude stačiť,a to asi ani s kombináciou COUNTIFS na kontrolu odchodu. Môžu nastať blbé prípady, že MAXIFS bude dávať najvyšší čas napr. 23:01, ale to bol fajčiť, v skutočnosti bol ten deň do 24:00, atď. Keď prídem ešte na to kuknem, nápad už je, len čas nie...

Kým som napísal môj predošlý elaborát, tak ste upresnil nezmyselnosť toho času. No nič, v tomto prípade si urobte pomocný stĺpec, kde čas upravíte, podľa podmienky, že ak sa jedná o jeden z tých 3 odchodov, a čas je <= 6:00 tak k času pripočíta 1 deň, inak napíše rovnaký čas. A tento upravený stĺpec potom použijete na výpočet aký potrebujete.

EDIT:
"před 23:59" ??? Veď ste písal, že treba meniť dátum po 00:00 na nasledujúci deň, a nie ten pred 23:59 meniť na predošlý deň.

To je to, čo som písal, že by data mali byť spolu, nie po dňoch. Ale dá sa to tak, že ak bude najskôr odchod, teda je jasné, že za "príchod" môžeme považovať 00:00, a rovnako ak je tam iba príchod za "odchod" môžeme považovať 24:00 (teda 24:00 neexistuje, je to tiež 00:00, ale takto to píšem pre pochopenie, že ide o koniec dňa). Teda MIREK strávil v práci 6:00 hodín z prvej nočnej a 02:29 z druhej nočnej. Ale ako chcete k tomu prirátať prvú časť prvej nočnej a druhú časť druhej nočnej, ak nemáte dáta z predošlého ani nasledujúceho dňa?

Hmm... píšete o prechode cez polnoc, no ja tam žiadny prechod cez polnoc nevidím. Ako určujete, kto je v práci pred polnocou, keď nemáte data po kope?

No a ako píše marjankaj - mená. Kde sú? Nemôžete chcieť od nás aby sme robili spätné inžinierstvo a vhodnou kombinatorikou zisťovali, ako napáskovať vym yslené mená na tabuľku tak, aby sedeli príchody a odchody po logickej stránke. To by nedali výpočtovo ani číňania 5 . Tie Vaše reálne mená cez funkciu Nahradiť nahraďte vymyslenými, ak ch je veľa dá sa urobiť jednoduchá prevodná tabuľka za 3 min.

Aký terminál sa považuje za príchod do práce, a aký sa považuje za odchod z práce ? Parkovisko, hala, šatňa, ... ?

Vy chcete zisťovať odpracovaný čas, alebo čas strávený v objekte medzi príchodom do práce a odchodom z práce? Pretože fajčiar odpracuje menej času, ten čo chodí stále do šatne telefonovať asi tiež. A čo upratovačka, ktorá chodí do šatne a fajčiarne vykonávať prácu? Tej to zas nemôžete odrátať z odpracovaného času...

Noo bude to zábava.

Osekajte "trochu" tie data, či sa nevojdete do 300 KB. Ak nie, použite niektorú online Free službu, alebo určite sa v rodine nájde niekto s telefónom s Androidom, teda má určite účet Google, a ku každému je automaticky 15 GB Cloud "Google Disk" ("Google Drive"). Nahrajte, kliknite pravým a dajte Získať odkaz na zdieľanie (či tak nejak), a ten nám pošlite. Po vyriešení môžete z GD vymazať.

To musí isť do modulu listu, nie do normálneho modulu. Robil som to tak, aby to zvládlo viacnásobné zmeny, a tak som to aj testoval, ale netestoval som zmenu 1 bunky. Inak by ma trklo, že treba vo verzii 1 doplniť jednoprvkové pole. Takže upravené.
Vo verzii 2 by mohol nastať v špecifickom prípade kopírovania do multioblasti nesprávny výsledok. Išlo o to, že ak by ste skopíroval 2 bunky, a na vloženie by ste označil jednu 2 bunkovú oblasť a o niečo ďalej druhú 1 bunkovú oblasť, Excel automaticky vyplní aj tú jednobunkovú kópiou zdrojovej dvojbunkovej. A tá druhá vrátila zlý výsledok. To si musíte vyskúšať. Opravené.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range, Kde(), H(), i As Long

Set Zmena = Intersect(Cells(2, 2).Resize(Rows.Count - 1), Target)
If Zmena Is Nothing Then Exit Sub
Kde = Worksheets("List2").Range("B2:C27").Value

Application.ScreenUpdating = False
Application.EnableEvents = False

On Error Resume Next
For Each Are In Zmena.Areas
With Are
If .Rows.Count = 1 Then ReDim H(1 To 1, 1 To 1): H(1, 1) = .Value Else H = .Value
For i = 1 To UBound(H, 1)
H(i, 1) = WorksheetFunction.VLookup(H(i, 1), Kde, 2, False)
If Err.Number <> 0 Then H(i, 1) = Empty: Err.Clear
Next i

.Offset(0, 1).Value = H
End With
Next Are

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range

Set Zmena = Intersect(Cells(2, 2).Resize(Rows.Count - 1), Target)
If Zmena Is Nothing Then Exit Sub

With Zmena.Offset(0, 1)
Application.ScreenUpdating = False
Application.EnableEvents = False

.Formula = "=IFERROR(VLOOKUP(B" & Zmena.Row & ",List2!$B$2:$C$27,2,FALSE),"""")"
For Each Are In .Areas
Are.Value = Are.Value
Next Are
Application.ScreenUpdating = True
Application.EnableEvents = True
End With
End Sub

2 varianty:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range, Kde(), H(), i As Long

Set Zmena = Intersect(Cells(2, 2).Resize(Rows.Count - 1), Target)
If Zmena Is Nothing Then Exit Sub
Kde = Worksheets("List2").Range("B2:C27").Value

Application.ScreenUpdating = False
Application.EnableEvents = False

On Error Resume Next
For Each Are In Zmena.Areas
With Are
H = .Value
For i = 1 To UBound(H, 1)
H(i, 1) = WorksheetFunction.VLookup(H(i, 1), Kde, 2, False)
If Err.Number <> 0 Then H(i, 1) = Empty: Err.Clear
Next i

.Offset(0, 1).Value = H
End With
Next Are

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range

Set Zmena = Intersect(Cells(2, 2).Resize(Rows.Count - 1), Target)
If Zmena Is Nothing Then Exit Sub

With Zmena.Offset(0, 1)
Application.ScreenUpdating = False
Application.EnableEvents = False

.Formula = "=IFERROR(VLOOKUP(B" & Zmena.Row & ",List2!$B$2:$C$27,2,FALSE),"""")"
.Value = .Value

Application.ScreenUpdating = True
Application.EnableEvents = True
End With
End Sub

Nemusíte písať presne rovnaký vzorec ako tu už je. Stačí raz 5
A ako som písal, dotaz a skladba "podmienok" je logický nezmysel. Nemôže byť
podmienka 1 TRUE - "A"
podmienka 1 FALSE - "B" a zároveň podmienka 2 ...
buď je pri FALSE "B" alebo nieje.

Nakreslite si niečo ako vývojový diagram vetvenia podmienok, ako sa učilo pri programovaní, a hneď musí každému docvaknúť nelogickosť dotazu.

Možno by sa to dalo aj takto:
Ak je
A1<=100
alebo
A1<=150 a zároveň pritom B1 je v jednom z intervalov 100-567 alebo 580-599
tak
"A"
inak vždy "B"
=IF(OR(A1<=100;AND(A1<=150;OR(AND(B1>=100;B1<=567);AND(B1>=580;B1<=599))));"A";"B")
=KDYŽ(NEBO(A1<=100;A(A1<=150;NEBO(A(B1>=100;B1<=567);A(B1>=580;B1<=599))));"A";"B")

Logický nezmysel.

Pokud je váha v buňce A1 do 100 kg včetně, napiš A, jinak B

hotovo bodka. Žiadne "a zároveň pokud..."
číslo v buňce B1 od 100 do 567 a od 580 do 599

no buď je 100-567 ALEBO 580-599. Nie "A" ale "ALEBO".
A teraz tie 2 veci ešte skĺbiť do logickej podmienky. Skúste ešte raz, napísať vzorec sa dá, iba ak sú jasné pravidlá :)

EDIT: Kombinácie sa dajú predsa robiť takmer ľubovoľné, len musíme vedieť čo máte na mysli. Vaše zadanie podľa mňa riešenie zatiaľ nemá, tu je len príklad, že môžete používať kombinácie a vnorenia AND/OR/AND atď...
=IF(A1<=100;"A";IF(AND(A1<=150;OR(AND(B1>=100;B1<=567);AND(B1>=580;B1<=599)));"A";"B"))
=KDYŽ(A1<=100;"A";KDYŽ(A(A1<=150;NEBO(A(B1>=100;B1<=567);A(B1>=580;B1<=599)));"A";"B"))

To preto, lebo vkladáte vzorec, a ten vzorec tam ostane, čiže sa pri kalkulácii prepočíta. Ten vložený a vypočítaný vzorec prepíšte jeho hodnotou. z brucha (oblasti som spojil, lebo sú spojité):
Sub Start()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

With Range("T17:AM18")
.Formula = "=RANDARRAY(1,1,0,0.02,FALSE)"
.Value = .Value
End With
With Range("T19:AM20")
.Formula = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
.Value = .Value
End With
With Range("T21:AM22")
.Formula = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
.Value = .Value
End With
With Range("T23:AM24")
.Formula = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
.Value = .Value
End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

So mnou ísť na pivo je na figu. Vypijem jedno a končím. Ja som taký "prd-chlap". 3

Keď už máte taký "fundamentalistický" postoj k zmene, tak som zmenil len nevyhnutné:
-Mesiac a rok "Leden "&srok určite nebude fungovať inde ako v CZ, teda ani mne, preto zmenené na univerzál.
-podmienené formátovanie z rovnakého dôvodu nefungovalo
-v jednej skupine (tuším B) ste mal zlé vzorce na "plné směny v měsíci
-na sviatky neprehľadávajte celý stĺpec B:B, keď máte len 13 sviatkov
-v B skupine ste sa odkazoval na zlý riadok výpočtu druhov smien (19 vs 20)
-vzorce v súčtoch sú manuálne vypísané, to by sa zišlo urobiť tak, aby boli vypočítavané, posúvané oblasti, aby bol vzorec naťahovateľný. Pretože pri nejakej úprave počtu a umiestnení riadkov to môže byť pracné.

Obyčajná podmienka:
=IF([@Master]="";[@Slave];[@Master])
=KDYŽ([@Master]="";[@Slave];[@Master])

?


Strana:  1 ... « předchozí  89 90 91 92 93 94 95 96 97   další » ... 289

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49