Moi
Seuraavan lainen ongelma nousi esille raportti dataa käsitellessäni...
Miten saisi laskettua päivämäärä erotuksen ja erojen kappalemäärän.
Pieni esimerkki joka toivottavasti selkiyttää enemmän.
Sarakkeessa G on pyydetty aloitus aika ja sarakkeessa J on toteutunut aloitus aika [ J-G = ohi menneet päivät] . Erotuksena pitäisi olla kpl ohimenneetpäivät ja ettei homma olisi liian helppo pitäisi vielä saada nuo työpäivät listattua "alueittain" ero : Mennyt ohi -1päivää ; 1-2 päivää ; 2-3 Päivää ja 4-> päivää ohi menneet...
Ja taulukossa on rivejä "vasta" reilu 32000kpl joten en viitsisi kauhean montaa copy / paste juttua tehdä joka riville... vaan hakusessa olisi VBA scripti/Makro tms hässäkkä.
Aikojen vertailu Excelissä
4
611
Vastaukset
tarkoititko todella , että ohi 1pv , 1-2 pv, 2-3 pv ja yli 4 pv?
vaiko 1,2,3 yli 4 pv?
no mai pen rai tossa sulle molemmat versiot
eli tulostukset soluihin N1:N4
moduuliin...
Sub Aikaerot()
Dim vika As Long
Dim solu As Range
Dim Aikaero As Long
On Error Resume Next
Range("N1:N4") = ""
vika = Range("G65536").End(xlUp).Row
For Each solu In Range("G1:G" & vika)
Aikaero = CDbl(solu.Offset(0, 3)) - CDbl(solu)
Select Case Aikaero
Case 1
Range("N1") = Range("N1") 1
Case 2
Range("N2") = Range("N2") 1
Case 3
Range("N3") = Range("N3") 1
Case Is > 3
Range("N4") = Range("N4") 1
End Select
Next
End Sub
Sub Aikaerot2()
Dim vika As Long
Dim solu As Range
Dim Aikaero As Long
On Error Resume Next
Range("N1:N4") = ""
vika = Range("G65536").End(xlUp).Row
For Each solu In Range("G1:G" & vika)
Aikaero = CDbl(solu.Offset(0, 3)) - CDbl(solu)
Select Case Aikaero
Case 1
Range("N1") = Range("N1") 1
Case 2
Range("N1") = Range("N1") 1
Range("N2") = Range("N2") 1
Case 3
Range("N2") = Range("N2") 1
Range("N3") = Range("N3") 1
Case Is > 3
Range("N4") = Range("N4") 1
End Select
Next
End Sub
Keep EXCELing
@Kunde- T:OMH
Kiitos. Nopeasta vastauksesta.
Ja ruokahaluhan kasvaa syödessä... Jos haluan lukea usealta välilehdeltä (Sheet 1, Sheet 2...Sheet n) ja palauttaa tuloksen vaikka Sheet OHI välilehdelle...
Silloin lienee ainoa vaihtoehto lukea ensin välilehtien nimet ja sijoitta ne "yksitellen tuon rivin Vika=Range arvoksi? toivottavasti ei tuu ähkyolo ;-)
Sub Aikaerot()
Dim vika As Long
Dim solu As Range
Dim Aikaero As Long
Dim taulukot
Dim i As Long
On Error Resume Next
Sheets("Ohi").Range("N1:N4") = ""
taulukot = Array("Taul1", "Taul2", "Taul3")
For i = LBound(taulukot) To UBound(taulukot)
vika = Sheets(taulukot(i)).Range("G65536").End(xlUp).Row
For Each solu In Sheets(taulukot(i)).Range("G1:G" & vika)
Aikaero = CDbl(solu.Offset(0, 3)) - CDbl(solu)
Select Case Aikaero
Case 1
Range("N1") = Sheets("Ohi").Range("N1") 1
Case 2
Range("N2") = Sheets("Ohi").Range("N2") 1
Case 3
Range("N3") = Sheets("Ohi").Range("N3") 1
Case Is > 3
Range("N4") = Sheets("Ohi").Range("N4") 1
End Select
Next
Next
End Sub
Keep EXCELing
@Kunde- T:OMH
Kiitos Paljon,
Nyt vain odotetaan laskenta tulosta....
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 532636
- 85914
Kuka varasti Sisun rahat
Kun lukee Sisun pöytäkirjaa, niin kuka on se, joka on varastanut Sisun rahat?!11885- 49866
- 76770
Miten sulla on niin kaunis
Ääni. Sellainen rauhoittavan vangitseva, jolloin aika kuin hidastuu. Ihmettelen sua vielä aika paljon. Lähes joka aamu t35741Ajattelen sinua
vain. Ihoasi vasten ihoani, huuliasi huulillani, sormiasi vartalollani... Olen katkera elämälle siitä että se antoi sinu27640- 76582
Luulet olevasi pidetty
Luulet olevasi pidetty ihminen ja tärkeä monille. Oikeasti et ole! Kukaan EI oikeasti sinua jeesaa, kun tarvitset olkap85566- 48555