• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Min/Max bepalen onder voorwaarden

Status
Niet open voor verdere reacties.
Code:
Wat betreft jouw eerste antwoord: je hebt handmatig 'tijdsinterval' doorgevoerd. Dat kan ik ook natuurlijk; het ging om Excel zelf dit in alle formules te laten doen. Vroeger kon dat.

hoe werkte dat vroeger dan?
ik ken deze functionaliteit niet.

Code:
Wat betreft jouw tweede bericht:
Je bent van een verkeerde cel uitgegaan: de eerste drie regels in die tabel zijn berekende waarden, een soort gewogen gemiddelde. Het gaat om de drie zaken die beginnen vanaf regel 4732, bijvoorbeeld om MaxLAeq

als je deze info meteen aanreikt, kan daar ook meteen rekening mee worden gehouden. :rolleyes:

meerdere waarden als uitkomst
je kunt de meerdere waarden (met een formule) als uitkomst wel onder elkaar laten zetten, dan kun je zelf alsnog kiezen.

Plaats je aangepaste bestand eens en misschien komen we samen (of met hulp van de medeforumleden) tot een oplossing. :)
 
In bericht 13 leg ik uit waar de functionaliteit in 2003 zit om namen door te voeren: 'toepassen' bij 'invoegen namen'. Ik heb dat vroeger meerdere keren gebruikt. Kan het evenwel nu even niet checken, omdat ik even op een andere PC met Linux werk.

Wat betreft jouw tweede opmerking: ik verwees naar cel BF4732 waar ik al wat had geprobeerd. Het was mogelijk niet helemaal duidelijk doorgekomen dat het ook om die rij ging. Maar ik ben met jouw antwoord toch zeer geholpen!

Vandaag nog iets nieuws ontdekt wat de bruikbaarheid verder verhoogt en dat ga ik van het weekend doorvoeren.

Opgelost moet nog worden het vermijden van verkeerde datum/tijdstip bij een gevonden waarde. Ik ga dus 'indirect' proberen te combineren met voorwaarden als opgegeven dag en dagdeel.

Verder zoek ik nog antwoord op de (nieuwe) vraag hoe je de drie/vier/... max/minimale waarden uit een reeks kunt opsporen (de eerste lukt nu, maar de volgende...). Ik heb hierover internet overigens nog niet afgestruind.

Van het weekend stuur ik een wat duidelijker bestandje waar wat nieuwe dingen in zullen zitten. Het is overigens heel lastig om onder de 100 kB te blijven; iedere keer heel wat sloopwerk...

Heel hartelijk dank zover,
mrt
 
L.S.

Bij deze de aangepaste tabel. Ondanks dat ik veel ben opgeschoten worstel ik nog met een paar vragen:

- Het is gelukt om de goede datum/tijdstip bij een gezochte waarde te vinden (zie de rijen 4658 t/m 4665) door voorwaarden te koppelen aan de indirect-functie. Wat een beetje jammer is, is dat gezocht moet worden vanaf T1 in plaats van T3. Ik kan dus niet dezelfde naam gebruiken als elders in de tabel. Oplossing leek mogelijk door een '2' in de formule te fietsen. Alleen krijg je dan een waarde op een niet beschikbaar moment: probeer bv 30-4 in te vullen in het groende kader en zie wat er gebeurt in het blauwe kader - in de cel ernaast is de oplossing van Oeldere terug te vinden. Is hier niet een mooie oplossing voor (probleem schuilt m.i. in de '"p");

- Als bijvoorbeeld 26-4 in groene kader wordt ingevoerd ontstaat in sommige cellen '#N/B'. Dat is onjuist want de waarde boven dit resultaat wordt wel gevonden, maar de bijbehorende datum dus niet. Ik heb geen idee hoe dit komt...

- Ik heb nog geen oplossing voor mijn wens meerdere maxima/minima te zoeken in een bepaalde periode. Het moet toch mogelijk zijn om de drie grootste waarden in een tijdvak op te zoeken. Wie heeft de gouden tip??

gegroet,
mrt
 

Bijlagen

  • uitgekleed.zip
    75,3 KB · Weergaven: 22
Toevallig zie ik jouw vraag, en ik vraag me af of je niet beter kunt werken met de DBMAX() en DBLEZEN() functies..?
 
Dag Paul,

DBMAX() en DBLEZEN() leken mij niet bruikbaar, al heb ik mij er ook niet heel erg diep in verdiept. Ik heb de oplossing gevonden door gewoon een al gebruikte matrixformule zodanig uit te breiden dat de eerdere gevonden 'maxen' worden uitgesloten. Zie onderstaande formule waar de derde maximale wordt gezocht en de eerste twee worden uitgesloten door '(LAeq<>B8)*(LAeq<>B10)'

Code:
=MAX(ALS((Datum_tijd>=B$3)*(Datum_tijd<B$3+1)*(LAeq>ondergrens)*(LAeq<bovengrens)*(Overload<1)*(Elapsed_time>=tijdsinterval_onder)*(Elapsed_time<=tijdsinterval_boven)*(Elapsed_time)*(LAeq<>B8)*(LAeq<>B10);LAeq;"-"))

bedankt zover,
mrt
 
Niet vinden van aanwezige data

L.S.

Toch maar dit draadje weer opengezet in verband met een gerelateerde vraag:

In bijgaand bestand heb ik drie tabbladen waarbij ik in de laatste (Tabellen) gericht vragen stel over gegevens in het eerste tabblad (LoggedBB). Door in kolom B1 een andere datum in te tikken (bv 1-6) wordt het 'venster' verschoven.
Zoals in het tabblad Tabellen te zien wordt een meetwaarde wel altijd gevonden, maar niet altijd het bijbehorende tijdstip: zie '#N/B' op verscheidene plaatsen in de tabel. Dat de formules toch goed zijn, blijkt als de datum wordt veranderd in bijvoorbeeld 1-6.
Ik heb aanzienlijk in de data moeten snoeien zodat niet meer data meegeleverd is. Maar in de echte dataset ontstaan ook op andere dagen op andere plekken in de tabel bovenstaande foutmelding.

Ik heb er al heel wat tijd op gestaard, maar kan niet ontdekken wat er fout gaat. Iemand de gouden tip?

gegroet,
mrt
 

Bijlagen

  • beperkt.zip
    75,3 KB · Weergaven: 21
Het lijkt mij handiger en zeker minder omslachtig om, als je de op 1 na grootste zoekt geen max functie te gebruiken met een uitgesloten max, maar om de grootste(;2) te gebruiken.
Misschien dat ik me vanavond eens wat dieper op de vraag kan inlezen en een redelijke oplossing kan aandragen. ff kijken hoe het met de tijd zit....
 
Dat zou heel tof zijn! En alles wat het vereenvoudigt ook; ik heb afhankelijk van het project zo'n 7-10 van dergelijke tabellen naast elkaar staan die de gegevens ophalen uit meerdere verschillende duizenden rijen - hier hebben de systemen duidelijk moeite mee.
Overigens vond ik de uitsluiting van de vorige maxen een van mijn briljante ideeën toen niemand met een bruikbaar alternatief kwam.


gegroet,
mrt
 
Ik ben er inmiddels achtergekomen dat het probleem zich voordoet op de rand van een tijdvak (dag, avond, nachtperiode): komt de gezochte tijd bij een max-waarde op de laatste of voorlaatste rij van een tijdvak, dan ziet ie hem niet. Dit heeft te maken met de twee bovenste rijen in het werkblad. Het commando 'vergelijken' in relatie tot 'indirect' werkt vanaf de eerste rij, waardoor alles opschuift. Je zou die een offset moeten kunnen geven. maar hoe is me nog niet duidelijk.

Ook zopas gevonden hoe tweede grootste etc te vinden: door te werken met 'grootste', wat eigenlijk al in het berichtje van Paul staat, maar nog niet had begrepen. Excel lijkt er niettemin problemen mee te hebben gezien het blijvend 'groene driehoekje' in de bovenhoek, maar het werkt dus wel.

Nu alleen dus nog de op te zoeken tijd goed zien te krijgen...
 
Laatst bewerkt:
Er zijn mij wat dingen onduidelijk, maar ik heb maar alvast een voorzetje gegeven.

Ik heb veel naam-bereiken weggehaald, het werd nogal onoverzichtelijk vond ik. Ik heb enkele nieuwe dynamische bereiken gemaakt, deze namen beginnen met babo_....

Wat mij niet duidelijk is:
- Wat moet er in C6 t/m F8 en C43 t/m F44?
- Wat moet er gebeuren als er 2 waardes zijn die evenhoog zijn en aan de voorwaarden voldoen? Bovenste eerst??
- Ik nam aan dat een nacht duurt van 23:00uur tot 7:00uur...klopt dit?

In de reeks mnet voorwaarden in de formule heb ik
Code:
*(Elapsed_time)
eruit gehaald, dit leek mij onnodig.
 

Bijlagen

  • babo.xlsx
    64,5 KB · Weergaven: 21
Laatst bewerkt:
Dag Paul,

Reuze bedankt voor je hulp! Ik heb mijn commandoregels aangepast aan jouw uitgewerkt voorbeeld en het werkt. Er zijn nog wel een paar onvolkomenheden:
  • Als er geen data gevonden wordt moet er een streepje "-" in de cel worden geplaatst. Dus er moet nog een voorwaarde aan toe worden gevoegd: Als C43>0.... In Rij 43 wordt gekeken of en hoeveel meetgegevens er zijn en in de volgende rij hoeveel tijd dat samen beslaat (max 24 uur = 1 dag/etmaal).
  • Ook is er nog een probleempje als in een data-reeks exact dezelfde waarde wordt gevonden. Nu worden ze wel alle twee weergegeven als bijvoorbeeld 1e en 2e maximum, maar in beide gevallen wordt dezelfde tijd (de 1e) dat het zich voordoet gevonden. Bijvoorbeeld 68,67 dB(A) om 4:00 uur en 5:15. Die 68,67 wordt dan wel twee keer gevonden, maar in beide gevallen wordt 4:00 uur weergegeven. Gelukkig zal dit zeer weinig voorkomen, dus als op te lossen probleem maar even geparkeerd.

In antwoord op jouw vragen:
  • In C6 t/m F8 wordt een complexe analyse uitgevoerd: de gemeten geluidniveaus worden allemaal eerst omgezet naar een energieniveau, dat wordt vervolgens gewogen (rekening houdend met tijdsverloop) gesommeerd om vervolgens het gemiddelde geluidniveau over die betreffende periode te bepalen. Beetje complex, maar voorgeschreven werkwijze bij optellen/aftrekken geluidniveaus.
  • De nachtperiode loopt inderdaad van 23:00 tot 7:00 de volgende dag.
  • 'Elapsed_time' was inderdaad volstrekt overbodig.

nogmaals dank! en gegroet,
mrt
 
Beide probleempjes zijn prima op te lossen hoor, maar nu ff niet door mij. Ik ga 2 weken op vakantie, en dan ook echt vakantie....dus geen pc mee :).
Als je daarna nog met het probleem zit dan zal ik wel helpen.

gr. Paul.
 
veel plezier en mooi weer toegewenst en wellicht tot later

gegroet,
mrt

p.s. het ene probleem (streepje bij geen data) al opgelost; het andere lijkt wat lastiger, maar niet urgent
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan