• 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.

Formule zo kort mogelijk schrijven.

Status
Niet open voor verdere reacties.

MeltedForest

Gebruiker
Lid geworden
22 sep 2008
Berichten
178
Hallo,
Ik ben geen held met Excel, maar ik heb een enorme formule zo'n 100x in een blad staan, en die wil ik wat korter maken zodat de grootte van het bestand beperkt blijft. Het is de volgende formule:

Code:
=ALS(ISLEEG(Patiëntgegevens!G3);ALS(ISLEEG(Patiëntgegevens!A3);"";ALS(ISLEEG(Patiëntgegevens!E3);ALS((VANDAAG()-Patiëntgegevens!D3)>3;"Patiënt "&Patiëntgegevens!A3&" - "&Patiëntgegevens!B3&" "&Patiëntgegevens!C3&" heeft na "&VANDAAG()-Patiëntgegevens!D3&" dagen nog geen ontslagbestemming.";"");""));"")

Ik heb geen idee of en hoe de formule korter kan, dus hulp is gevraagd :)

Alvast bedankt :thumb:
 
Met OF kom je verder, maar hij blijft lang:
Code:
=ALS(OF(ISLEEG(Patiëntgegevens!G3);ISLEEG(Patiëntgegevens!A3));"";ALS(OF(ISLEEG(Patiëntgegevens!E3);VANDAAG()-Patiëntgegevens!D3>3);"Patiënt "&Patiëntgegevens!A3&" - "&Patiëntgegevens!B3&" "&Patiëntgegevens!C3&" heeft na "&VANDAAG()-Patiëntgegevens!D3&" dagen nog geen ontslagbestemming."))
 
Nee dat maakt inderdaad niet zoveel uit en je bent nog een ISLEEG controle vergeten, dus zou die nog bijna langer worden! :eek:
 
zet in cel K100

="Patiënt "&Patiëntgegevens!A3&" - "&Patiëntgegevens!B3&" "&Patiëntgegevens!C3&" heeft na "&VANDAAG()-Patiëntgegevens!D3&" dagen nog geen ontslagbestemming."

verwijs in de cellen 'met de lange formule" naar K100.

ALS((VANDAAG()-Patiëntgegevens!D3)>3;K100;"")

en met een gebruikersfunktie (UDF) kan het nog eenvoudiger.
 
Laatst bewerkt:
Het kan wel wat korter.
Code:
=ALS(EN(patiëntgegevens!G3="";patiëntgegevens!A3="";patiëntgegevens!E3<>"";VANDAAG()-patiëntgegevens!D3>3);"Patiënt "&patiëntgegevens!A3&" - "&patiëntgegevens!B3&" "&patiëntgegevens!C3&" heeft na "&VANDAAG()-patiëntgegevens!D3&" dagen nog geen ontslagbestemming.";"")

Met vriendelijke groet,


Roncancio
 
Code:
Function ontslag(sq)
  ontslag=""
  If Date - sq(1, 4) > 3 And sq(1, 1) & sq(1, 6) <> "" And sq(1, 5) = "" Then ontslag = "Patiënt " & sq(1, 1) & " - " & sq(1, 2) & " " & sq(1, 3) & " heeft na " & Date - sq(1, 4) & " dagen nog geen ontslagbestemming."
End Function

In de cel waar het resultaat moet komen zet je

Code:
=ontslag(Patiëntgegevens!A3:G3)
 
Laatst bewerkt:
Thx SNB op het eerste gezicht werkt het.:thumb:
Alleen zit ik nog met een ding. Als de If statement niet waar is komt er 0 te staan, maar er moet dan niks komen. Heb je hier een oplossing voor? :rolleyes:

Edit:
Heb aan de regel het volgende toegevoegd en nu werkt ie prima :D
Code:
Else ontslag = ""
 
Laatst bewerkt:
Vorige code aangepast.
Voordeel van deze methode is, dat het werkblad verschoond blijft van veel formules en daardoor in omvang beperkt blijft.
Formules in VBA vind ik gemakkelijker te lezen dan in een cel-formule
 
Nadeel van een UDF... De standaard 'ingebouwde functies' werken een stuk sneller. (bron: J. Walkenbach). Ik moet er wel bij zeggen dat ik zelf óók redelijk snel ben in het schrijven van een UDF ipv het uizoeken of het ook met standaard functies opgelost kan worden.

Groet, Leo
 
Super :thumb:
Nu nog even kijken of ik het zelf snap, ik moet er namelijk nog andere dingen mee doen
 
snb,
bij sq(1, 6) als je in de formule ontslag(Patiëntgegevens!A3:G3) invult, is 1,6 dan veld G3 of F3?
 
Ik heb nog 'n probleem ik heb de volgende formule:

Code:
=ALS(ISLEEG(Patiëntgegevens!$F6);"";ALS(ISLEEG(Patiëntgegevens!$G6);ALS(ISLEEG(Patiëntgegevens!$A6);"";ALS((VANDAAG()-Patiëntgegevens!$F6)>0;"Patiënt "&Patiëntgegevens!$A6&" - "&Patiëntgegevens!$B6&" "&Patiëntgegevens!C6&" heeft "&VANDAAG()-Patiëntgegevens!$F6&" verkeerde beddagen.";""));""))

En ik heb de volgende UDF ervan geprobeerd te maken, maar hij doet het nog niet helemaal goed. Als F6 leeg is dan hoort hij niks weer te geven, maar dan geeft hij wel wat weer. Hier mijn UDF:

Code:
Function beddagen(xy)
    beddagen = ""
    If Date - xy(1, 6) > 0 And xy(1, 1) & xy(1, 6) <> "" And xy(1, 7) = "" Then beddagen = "Patiënt " & xy(1, 1) & " - " & xy(1, 2) & " " & xy(1, 3) & " heeft " & Date - xy(1, 6) & " verkeerde beddagen."
End Function
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan