Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Verschil berekenen met voorwaarden  (gelezen 1000 keer)

0 leden en 1 gast bekijken dit topic.

Offline Melkveehouder

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Verschil berekenen met voorwaarden
« Gepost op: 17 december 2021, 21:24:10 »
Beste allemaal,

Graag zou ik hulp ontvangen voor mijn volgende vraag.

Ik ben veehouder en draai uit mijn systeem een lijst uit zoals in de bijlage, hiermee kunnen wij zien wat het productieverloop is de afgelopen 30 dagen per dier. De lijst is gesorteerd op afkalfdatum, dus de bovenste dieren hebben nog geen 30 dagen en de dieren lager op de lijst wel. Ook is elke dag de lijst anders, dus de range per dier verschillend.
Omdat we nu de hele lijst moeten nakijken zou ik graag achter elk dier dus in bv kolom H het verschil in melkproductie (KOLOM G)zien van de eerste en laatste datum (KOLOM E) . Voor de overzichtelijkheid zou ik dan graag op de volgende sheet een samenvatting hebben met onder elkaar alle dieren en het productie verschil in procenten.

Ik ben wel bekend met formules in excel maar denk dat het met een vba-code makkelijker is, maar ik weet niet goed hoe, kan iemand mij helpen?

Hopenlijk heb ik het duidelijk uitgelegd

Alvast dank.

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Verschil berekenen met voorwaarden
« Reactie #1 Gepost op: 18 december 2021, 08:48:32 »
Dag,
omdat U zelf aangeeft dat de lijst elke dag veranderd is mijn vraag of het niet beter zou zijn om per dier een werkblad aan te maken ?
dan wordt het veel makkelijker om Uw gevraagd overzicht te maken ?
en dan op één werkblad een 'totaal' overzicht ?
ik heb eens als voorbeeld het aangepast bestand bijgevoegd.
indien hiermee akkoord geef dan nog eens wat je dan exact wilt zien per dier ?
Mvg,
Arnold.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline Melkveehouder

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Verschil berekenen met voorwaarden
« Reactie #2 Gepost op: 18 december 2021, 10:06:26 »
Beste,

Dank voor je reactie, maar het voorbeeld bestand is ingekort, het echte bestand betreft ca 130 dieren, dus een handmatige aktie wordt wel lastig.
Daarom dacht ik via bv een code die die  automatisch het productie verschil berekent en een totaal overzicht op een apart blad.

Siebe

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Verschil berekenen met voorwaarden
« Reactie #3 Gepost op: 18 december 2021, 11:37:49 »
dag Siebe,
dat wordt een heel moeilijke oefening omdat je zelf aangeeft dat de lijst dagelijks veranderd...
ik heb wel een paar kleine veranderingen doorgevoerd , als je nu dus filtert op een diernummer dan krijg je alleen de gegevens van dat dier te zien (zie screencopy).
ik heb ook gemerkt dat het diernummer als tekst staat , ik heb de ganse kolom omgezet naar getal.
ook de 2 kolommen met datum stonden als tekst , ik heb die omgezet naar datum notatie : 18-12-21 , als je nu een datum wilt invullen hoef je slechts dag en maand in te geven (18-12) , de rest wordt automatisch aangevuld...
misschien kan je hier al wat meer uit de voeten mee , mogelijks zijn er hier andere helpers die het willen bekijken.
Mvg,
Arnold.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: Verschil berekenen met voorwaarden
« Reactie #4 Gepost op: 20 december 2021, 14:12:39 »
My 2 cent.

Op je datablad kan je niet veel doen aangezien je zelf zegt dat de ranges constant veranderen.

Ik ben er van uit gegaan dat de eerste waarde (verschillend van 0) ook steeds de laagste is. Als dit niet het geval is dan graag een seintje.

Voor de rest gewoon op de knop op blad 2 drukken voor resultaten.

Sub tst()
    With Sheets("Blad 1")
        sn = .Cells(1).CurrentRegion
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
    End With
    With CreateObject("scripting.dictionary")
        For i = 2 To UBound(sn)
            x0 = .Item(sn(i, 1))
        Next
        nRow = .Count
        Sheets("Blad 2").Cells(1).CurrentRegion.Offset(1).ClearContents
        Sheets("Blad 2").Cells(2, 1).Resize(.Count) = Application.Transpose(.keys)
    End With
    With Sheets("Blad 2")
        For Each cl In .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
            .Range("R2") = cl.Value
            Sheets("Blad 1").Range("A1:G" & lRow).AdvancedFilter 2, .Range("R1:R2"), .Range("R4:X4")
            sRow = .Range("R" & .Rows.Count).End(xlUp).Row
            cl.Offset(, 1) = Evaluate("=SMALL(x5:x" & sRow & ",1+COUNTIF(x5:x" & sRow & ",0))")
            cl.Offset(, 2) = .Range("X" & sRow - 1)
            cl.Offset(, 3).FormulaR1C1 = "=(RC[-1]-RC[-2])/RC[-2]"
        Next
        .Range("D2").Resize(nRow).NumberFormat = "0.00%"
        .Range("R2").ClearContents: .Range("R4").CurrentRegion.Offset(1).ClearContents
    End With
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline Melkveehouder

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Verschil berekenen met voorwaarden
« Reactie #5 Gepost op: 20 december 2021, 15:09:13 »
Beste warme bakkertje,

In de bijlage een recent volledig ingelezen bestand , komen toch nog wat fouten te staan in de samenvatting, misschien kun je er eens naar kijken nog?

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: Verschil berekenen met voorwaarden
« Reactie #6 Gepost op: 20 december 2021, 16:30:19 »
Nieuwe poging. Alles is natuurlijk afhankelijk van hoe je import eruitziet.

Daardoor kunnen er ook nog andere anomalieën optreden.

Sub tst()
    With Sheets("Blad 1")
        sn = .Cells(1).CurrentRegion
        For Each cl In .Range("A2:A" & UBound(sn))
            If cl = "" Then cl.FillDown
        Next
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
    End With
    With CreateObject("scripting.dictionary")
        For i = 2 To UBound(sn)
            x0 = .Item(sn(i, 1))
        Next
        nRow = .Count
        Sheets("Blad 2").Cells(1).CurrentRegion.Offset(1).ClearContents
        Sheets("Blad 2").Cells(2, 1).Resize(.Count) = Application.Transpose(.keys)
    End With
    With Sheets("Blad 2")
        For Each cl In .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
            .Range("R2") = cl.Value
            Sheets("Blad 1").Range("A1:G" & lRow).AdvancedFilter 2, .Range("R1:R2"), .Range("R4:X4")
            If .Range("R4").CurrentRegion.Rows.Count = 2 Then GoTo nextcl
            sRow = .Range("R" & .Rows.Count).End(xlUp).Row
            If Application.Sum(.Range("X5:X" & sRow)) = 0 Then GoTo nextcl
            cl.Offset(, 1) = Evaluate("=SMALL(x5:x" & sRow & ",1+COUNTIF(x5:x" & sRow & ",0))")
            For i = sRow To 4 Step -1
                If .Range("X" & i) <> 0 Then
                    cl.Offset(, 2) = .Range("X" & i): Exit For
                End If
            Next
            cl.Offset(, 3).FormulaR1C1 = "=(RC[-1]-RC[-2])/RC[-2]"
nextcl:
        Next
        .Range("D2").Resize(nRow).NumberFormat = "0.00%"
        .Range("R2").ClearContents: .Range("R4").CurrentRegion.Offset(1).ClearContents
    End With
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Groet,

Albert

Offline Melkveehouder

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Verschil berekenen met voorwaarden
« Reactie #8 Gepost op: 21 december 2021, 07:45:22 »
Allen dank , zo kan ik verder.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Verschil berekenen met voorwaarden
« Reactie #9 Gepost op: 21 december 2021, 09:15:19 »
ZO kan je inderdaad verder  :( :( :( :default_thumpdown:

Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.

Overtreding van deze regel kan bestraft worden met verbanning !

Hiermee ging je akkoord toen je enkele dagen geleden registreerde !!
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Melkveehouder

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Verschil berekenen met voorwaarden
« Reactie #10 Gepost op: 21 december 2021, 09:21:51 »
Moderator,

Je hebt gelijk, ben ik mij niet goed bewust geweest, excuus.

 


www.combell.com