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

Patient met alleen "KLIN" afspraakcode

Status
Niet open voor verdere reacties.

PedroJV

Gebruiker
Lid geworden
23 aug 2018
Berichten
77
Beste Forumleden.

Ik heb een tabel met Patient, Datum en afspraakcode.
Graag zou ik alleen de rijen markeren met een 1 in een kolom d, waarvan de patient alleen een afspraakcode heeft "KLIN".
In het voorbeeld zijn dat alleen pat:
1639 30-7-2018 KLIN
1673 7-12-2018 KLIN
1673 20-12-2018 KLIN

De andere patienten hebben of alleen DIAB afspraken, of gecombineerd met KLIN.


Pat Datum Afspraakcode
0042 27-2-2018 DIAB
0042 4-9-2018 DIAB
0042 19-12-2018 DIAB
1243 12-1-2018 DIAB
1243 12-4-2018 KLIN
1243 11-7-2018 DIAB
1483 25-4-2018 DIAB
1483 18-12-2018 DIAB
1639 30-7-2018 KLIN
1673 7-12-2018 KLIN
1673 20-12-2018 KLIN
4315 23-2-2018 DIAB
4315 20-3-2018 DIAB
4315 31-8-2018 DIAB
4315 4-10-2018 DIAB
4315 3-12-2018 DIAB
7014 29-3-2018 DIAB
7014 5-7-2018 KLIN
7014 3-12-2018 DIAB


Alvast bedankt.
 
Sorry VenA, dat werkt natuurlijk niet.
Dat zie ik toch alleen wie er een KLIN heeft.
het gaat erom dat ik dan geen filter heb met patiënten die ook een DIAB code hebben.


Graag een oplossing?
 
Laatst bewerkt door een moderator:
Code:
=n(aantallen.als($a$2:$a$20;a2;$c$2:$c$20;"diab")=0)
 
Een database kan.. handiger zijn...
Je kunt er een filter voor maken maar je ook heel snel op het formulier R-muis en dan invullen wat het essentiële deel van de tekst is, KLIN dus.
En ze staan er meteen.
Het voordeel is dat je dit in principe op elk veld en voor elke waarde die je daarin opzoeken wilt, dit kunt toepassen.

Als dit het principe van de database inhoud is, dan is het super simpel.
Veld1=Pat (Patient)
Veld2=Datum
Veld3=Afspraakcode

uit jouw data:
Pat Datum Afspraakcode
0042 27-2-2018 DIAB
.....
 
@Route

Daarvoor heeft Excel ingebouwde filteropties.
 
Beste @Route99 en @snb,

ik zie niet in hoe jullie dit bedoelen met filteren.
Zoals jullie nu bedoelen, zie ik er alleen alle "KLIN" staan.
Maar het gaat over alle patienten die alleen een KLIN hebben, niet in combinatie met DIAB.
 
Das nog leuk als de keuzelijst niet zo groot is...zodra je data set te groot wordt verlies je zo het overzicht en lijkt me een database handiger.
Excel is en blijft een rekenvel, geen database...
 
@route99, Kan je even opzetje maken met hoe jij het in een database zou doen? Ik neem aan Access.
 
Access en dan een simpele database wordt het voor het principe; wordt wel pas over een paar dagen, ik heb problemen met Access thuis. Ben er mee bezig, anders moet het nl op het werk gebeuren.
 
Probeer deze vrij simpele database eens.

Ik heb voor een doorlopend formulier gekozen want dan zie je allen die aan de voorwaarden van het zoekveld voldoen meteen als resultaat.
Je mag in het zoekveld een willekeurig deel van woord of datum of getal invullen.
Er mag ook een wild star * tussen staan, de begin en eind wild stars worden automatisch gezet..... (das dan logisch gezien wat ik schreef..)
Voor elk veld heb ik een zoekveld gemaakt.
Heb het niet door en door getest.

Het geopende formulier (nr 1...) vind ik wel het handigste, zulke zoekfilters via VBA gebruik ik zelf ook op het werk.
In principe zou ik ook ene zoekveld kunnen maken die in alle 3 velden zoekt, maar met een combi met datum is het dan meer opletten met hoe je dat invoert.
Enjoy.
 

Bijlagen

Laatst bewerkt:
Mooi dat Access weer werkt bij jou. Een beetje jammer dat het gewenste resultaat nergens naar voren komt.;)

Code:
Option Compare Database
Private Sub zoek1_Change()
        Dim strFilter As String
    On Error GoTo ErrHandler
    If Me.zoek1.Text <> "" Then
        strFilter = "[pat] Like '*" & Me.zoek1.Text & "*' "
         Me.Filter = strFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
    With Me.zoek1
        .SetFocus
        .SelStart = Len(Me.zoek1.Text)
    End With
    Exit Sub
ErrHandler:
    MsgBox Err.Description, vbExclamation
End Sub

Private Sub zoek2_Change()
        Dim strFilter As String
    On Error GoTo ErrHandler
    If Me.zoek2.Text <> "" Then
        strFilter = "[datum] Like '*" & Me.zoek2.Text & "*' "
         Me.Filter = strFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
    With Me.zoek2
        .SetFocus
        .SelStart = Len(Me.zoek2.Text)
    End With
    Exit Sub
ErrHandler:
    MsgBox Err.Description, vbExclamation
End Sub

Private Sub zoek3_Change()
        Dim strFilter As String
    On Error GoTo ErrHandler
    If Me.zoek3.Text <> "" Then
        strFilter = "[afspraakcode] Like '*" & Me.zoek3.Text & "*' "
         Me.Filter = strFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
    With Me.zoek3
        .SetFocus
        .SelStart = Len(Me.zoek3.Text)
    End With
    Exit Sub
ErrHandler:
    MsgBox Err.Description, vbExclamation
End Sub

Drie keer nagenoeg hetzelfde lijkt mij niet logisch. Maakt mij verder niet uit. Het was jouw idee en ik was even nieuwsgierig naar jouw oplossing.
 
@VenA: Oja, die 1 moet er nog bij.. was ik ff vergeten. Zal daar nog naar kijken.

Verder:
Ik had die 2 extra ziekopties ook weg kunnen laten..., dus dat komt "vervelend" binnen....
Mijn verwachting was nl, dat na het zien an een optie de vraag toch komt: "kun je dat ook voor de velden pat (patient) en datum?
Dus heb ik dat meteen als demo meegenomen dat het kan.

Vraag aan de TS: wat is de functie van "1" dan is dat ook duidelijk.
Want in de filtering die ik gemaakt heb zie je de andere toch niet meer zolang het filter aan staat.?
Een database je eigenlijk altijd in de interactie met de gebruiker en daar is nog te weinig van voorbij gekomen.
Het filter kun je onderaan uit klikken of je maakt het zoekveld leeg.
 
Laatst bewerkt:
Ik zie niet zo snel het verband tussen een rekenvel en een draaitabel, een intelligente tabel, een slicer, autofilter, advancedfilter, webqueries, databasequeries, XML-koppelingen, Powerpivot, etc.
Althans niet in de Officeversies na '95.

En hoe dit kan met louter een rekenvel is mij een raadsel:
Code:
Sub M_snb()
  With CreateObject("ADODB.Recordset")
    .Open "SELECT * FROM `Blad1$` where Afspraakcode='KLIN' ", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;;HDR=Yes;IMEX=1"""
    Cells(1, 10).CopyFromRecordset .DataSource
  End With
End Sub
 
Laatst bewerkt:
Misschien omdat je het universeel wilt hebben zodat de code niet allleen voor een woord werkt? En je het bij grote datasets overzichtelijk wilt houden. Databases zijn juist daar zeer geschikt voor. Ga maar eens zoeken als je tien duizenden entries hebt...
 
Je dwaalt wel erg ver van de vraag in #1 af.
En anno 2019 heeft Excel echt niet zoveel moeite met een paar 10000 records meer of minder.
Jouw bewering dat Excel slechts een rekenvel zou zijn toont slechts 1 ding (dat niet over Excel gaat).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan