[Excel/Access] Data uit Excel sorteren via Access *

Pagina: 1
Acties:

  • Mike Jarod
  • Registratie: Januari 2002
  • Niet online
Ik heb hier iets voor me waar ik niet uit kom. Het probleem is alleen dat ik niet eens weet hoe ik moet beginnen. Ik heb de volgende gegevens in een Excel sheet staan.

code:
1
2
3
4
5
6
7
8
9
NAAM     LETTER
KLAAS      A
KLAAS      A
WIM        B
WIM        C
WIM        B
JAN        D
JAN        D
JAN        D

Het is de bedoeling dat ik op één of andere manier WIM naar boven tover, omdat die verschillende letters heeft. De anderen ben ik niet in geinteresseerd.

Ik weet dat dit topic niet voldoet aan de policy, maar zoals ik al zei heb ik geen idee waar ik moet beginnen. Ik heb de beschikking over Excel en Access, en heb basis SQL kennis.

Ik hoef niet de oplossing, maar een hint zou welkom zijn :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
<hint>
Je kunt een VBA macro-tje schrijven hiervoor...

;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
importeren in Access en dan de volgende query runnen

SELECT Naam, COUNT(*) as Aantal FROM Tabel GROUP BY Naam, Letter HAVING COUNT(*) > 1

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

(stap 1) kolommetje C toevoegen met =A2&B2. Krijg je waardes als KLAASA, WIMB, WIMC, JAND.

(stap 2) kolommetje toevoegen met iets als
code:
1
=IF(COUNTIF($A$2:$A$9;"="&A2)-COUNTIF($C$2:$C$9;"="&C2)<>0;"v";"x")

- hier wordt het aantal keren dat een naam voorkomt verminderd met het aantal keren dat de naam-letter-combinatie voorkomt. Is dat getal ongelijk 0, dan zijn er verschillende letters :)


Journalism is printing what someone else does not want printed; everything else is public relations.


Verwijderd

Importeer de zooi in acces.
Selecteer beiden kolommen en met je licker-muis-knop ingehouden druk je
op je rechter-muis-knop op zo'n kolom en druk dan aflopend sorteren.

  • Mike Jarod
  • Registratie: Januari 2002
  • Niet online
P_de_B schreef op 28 april 2004 @ 13:08:
SELECT Naam, COUNT(*) as Aantal FROM Tabel GROUP BY Naam, Letter HAVING COUNT(*) > 1
Thanks voor je reactie. Het lijkt niet te werken. Ik heb dat voorbeeld van hierboven letterlijk aangemaakt in Access, en de getallen (aantal / count *) die ie teruggeeft zijn het aantal dezelfde letters. Ik wil dus juist filteren op het aantal verschillende letters. Of ik doe iets fout.

Ik ga de volgende reactie eens proberen :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Mike Jarod schreef op 28 april 2004 @ 13:06:
Ik weet dat dit topic niet voldoet aan de policy
Je had toch op z'n minst een betere titel kunnen bedenken.... :/

*!*!* Over topictitels in P&W - Updated 25 feb 04 *!*!*

Professionele website nodig?


  • Mike Jarod
  • Registratie: Januari 2002
  • Niet online
Mensen, bedankt voor de hints :)

Ik ben er uit. Mijn voorkeur ging uit naar SQL, en deze query doet wat ik wil:
code:
1
2
3
4
5
select * from test where naam in 
(
select naam from
(SELECT Naam, letter FROM test GROUP BY naam, letter) a group by naam having count(*) > 1
)


Dit wordt echt lachen omdat deze query uitgevoerd gaat worden op een database export van 1.5 miljoen regels :o Vanwege de geneste statements gaat dit heel lang duren ben ik bang. Ben ook bang dat Access niet eens 1.5 miljoen rijen aankan, maar dat is een probleem voor later ;)

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Als het een eenmalige actie is kan je dan niet in de database export een DISTINCT aangeven op Naam en Letter?
Of dat je in Access een tijdelijke tabel aanmaakt waar je een DISTINCT selectie inzet.

Hiermee zou je volgens mij de performance kunnen verbeteren want dan hou je in je voorbeeld alleen de volgende records over:
code:
1
2
3
4
5
NAAM     LETTER
KLAAS      A
WIM        B
WIM        C
JAN        D

En dan zou de volgende query wel het juiste resultaat moeten opleveren en ook een stuk sneller volgens mij.
code:
1
SELECT Naam, COUNT(*) as Aantal FROM Tabel GROUP BY Naam HAVING COUNT(*) > 1
Pagina: 1