Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[excel 2003] Crosstab maken.

Pagina: 1
Acties:

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 28-11 09:35

leuk_he

1. Controleer de kabel!

Topicstarter
Mijn probleem:

ik heb data in de vorm

code:
1
2
3
4
5
6
7
8
9
10
11
Persoon   Dag     DATA
A            1           AX
A            2           Z
A            3           g
B            1           O
B            2           A
B            3           C1
C            1           C2
C            2           C1
C            3           C2
.... Veel langere lijst uit relationele oracle database.....


Die wil in converteren naar een crosstab tabel
code:
1
2
3
4
5
          1        2      3       .....
A       AX      Z      g
B       O       A      C1
C       C2     C1     C2
...


-Help verwijst mij naar een pivot table, maar die gaat group functies loslaten op de DATA, en dat heeft geen zin.
-crosstab functie kent oracle niet tenzij ik een heel lange query maak waar ik dus tegen limieten aanloop.

Hoe maak ik een crosstab tabel zonder groep functies op de data los te laten?

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je wilt eigenlijk geen crosstab maken, maar meer een soort matrix. Ik heb geen echte goede manier gevonden, behalve het volgende:

1. Je maakt matrix zelf aan (de kolommen en rows headers)

2. Er vanuitgaande dat Persoon A1 is en Data A3, plaats je de volgende functie in F2 (van je matrix)
code:
1
=IF(AND($E2=$A$2:$A$10)*(F$1=$B$2:$B$10);$C$2:$C$10;"niet gevonden")

"niet gevonden" even toegevoegd, voor debugging, maar normaal kan je die gewoon leeg laten dmv "".

Hier een screenshot ter verduidelijking:
Afbeeldingslocatie: http://tweakers.net/ext/f/fzAWA6Wpbuhsv7awEQF9o6oM/full.jpg

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Ik snap niet wat die and() daar doet. Of er ontbreken haakjes. En er moet nog even {} om de formule heen toch?

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 28-11 09:35

leuk_he

1. Controleer de kabel!

Topicstarter
BtM909 schreef op vrijdag 10 april 2009 @ 11:32:
1. Je maakt matrix zelf aan (de kolommen en rows headers)

code:
1
=IF(AND($E2=$A$2:$A$10)*(F$1=$B$2:$B$10);$C$2:$C$10;"niet gevonden")
Voor
G2 krijg ik meteen "niet gevonden." terug die de "g" had moeten vinden.
code:
1
=IF(AND($E2=$A$2:$A$10)*(G$1=$B$2:$B$10);$C$2:$C$10;"niet gevonden")


Dit is de file: http://www.fileqube.com/file/rawuBa187258 (Met dummy data uiteraard...)


Hoe werkt nou die * en AND? heb je wat zoekwoorden voor de Engelse help.
En ik moet nog uitvogelen hoe ik De E colum vul, want de waarden daar zijn niet A,B,C, meer veel meer waarden.... Maar dat zal wel lukken.

[ Voor 10% gewijzigd door leuk_he op 10-04-2009 15:19 . Reden: dat kan met een unique filter. ]

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik snap ook niet hoe dat zou moeten werken, ik denk dat de volgende array-formule wordt bedoelt: :)
code:
1
{=INDEX($C$2:$C$10,MATCH(1,($E3=$A$2:$A$10)*(F$1=$B$2:$B$10),0))}

(gebruik ctrl-shift-enter bij het invoeren)

Keer is gebaseerd op dat TRUE intern 1 is in excel. TRUE*TRUE is dus 1... Die AND kan ik in dit verband niet plaatsen, die is gedoemd om fout te gaan ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Vreemd. Pivottable zou hier geschikt voor zijn maar blijkbaar zijn ze first/last functies vergeten te implementeren. Met een (data-->externe gegevens ophalen-->nieuwe database) query op het eigen bestand kan het wel.
SQL:
1
2
3
4
5
TRANSFORM First(bron.data) AS persoonsdagcode
SELECT bron.persoon
FROM `[naambestand`.[naambereik] bron
GROUP BY bron.persoon
PIVOT bron.dag;

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1