Excel verwijzing naar eerste b.l. waarde in kolom ervoor

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Bobbje
  • Registratie: December 2013
  • Laatst online: 21:19
Mijn vraag
Goedemorgen allen!

Ik heb een soort van boomstructuur gemaakt in Excel en nu moet ik daarbij de bovenliggende waarde herhalen.
De is altijd de eerst waarde in de kolom ervoor. Weet iemand hoe dat makkelijk en automatisch kan?
Zie de bijgevoegde afbeelding.
Het gaat om een goede 1200 regels kolommen, dus handmatig wordt best wel een werkje.

Afbeeldingslocatie: https://tweakers.net/i/9_RXM9BHyaVxh15ABJbWnmVucfQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/TLlaGauYQxOmWkA4MEalIB73.png?f=user_large

Relevante software en hardware die ik gebruik
Excel

Wat ik al gevonden of geprobeerd heb
Een ALS formule maar die wordt veelste lang :X

Beste antwoord (via Bobbje op 01-04-2021 19:15)


  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 22:27

g0tanks

Moderator CSA
Volgens mij werkt onderstaande, maar alleen als de echte data het format hanteert zoals in jouw voorbeeld. Ik bepaal eerst met INDEX+MATCH de kolomnummer (1-4) waarin een waarde staat. Vervolgens pas ik de volgende logica toe om de bovenligende waarde te bepalen:
  1. TOP
  2. TOP
  3. Eerste karakter van ingevulde waarde (A1 wordt A)
  4. Eerste twee karakters van ingevulde waarde (A1.1 wordt A1)
code:
1
=CHOOSE(MATCH(TRUE;INDEX(A2:D2<>0;);0);"Top";"Top";LEFT(C2;1);LEFT(D2;2))

Afbeeldingslocatie: https://tweakers.net/i/D4un8H6eCbOqbQY3grFB0fe2MD8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/j7PNjukcAVcD3MzctwxWPPWB.png?f=user_large

[ Voor 5% gewijzigd door g0tanks op 01-04-2021 12:32 ]

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW

Alle reacties


Acties:
  • 0 Henk 'm!

  • SinergyX
  • Registratie: November 2001
  • Laatst online: 12:41

SinergyX

____(>^^(>0o)>____

Je zou hem in 2 stappen kunnen, daarna de formule weer samenvoegen tot 1.

Eerst stel je vast welke van de 4 kolommen gevuld is (hor.zoeken werkt nog steeds?) en vervolgens een als isleeg <waarde 1 cel 1links/1omhoog>, dan waarde, anders waarde formule erboven.

Geneste versie zou zo lang worden als je totaal kolommen zou hebben, wat dan wel de makkelijkste manier is.

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je wilt dus kolom E vullen? Eerste wat in me opkomt, E5: als B5 leeg dan =E4, anders =B5. Herhalen voor hele kolom.

Als je iets anders bedoelt: misschien kan je inspiratie opdoen in iets als zoeken bij google naar 'excel formula find next filled cell' -> https://www.mrexcel.com/b...-blank-cell-value.951888/

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Bobbje
  • Registratie: December 2013
  • Laatst online: 21:19
F_J_K schreef op donderdag 1 april 2021 @ 08:51:
Je wilt dus kolom E vullen? Eerste wat in me opkomt, E5: als B5 leeg dan =E4, anders =B5. Herhalen voor hele kolom.

Als je iets anders bedoelt: misschien kan je inspiratie opdoen in iets als zoeken bij google naar 'excel formula find next filled cell' -> https://www.mrexcel.com/b...-blank-cell-value.951888/
Ja wil kolom E vullen, maar het loopt door tot kolom H en rij 1200. Als ik via jou manier ALS formules ga maken kom ik nooit van G421 naar E344 waar mischien een bovenliggende zit.

De link die je meestuurt werkt wel, alleen dan krijg ik de bovenste waarde en niet de onderste.
Dan zegt kolom E bij B3.2 -> A1 i.p.v. B3....

Acties:
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Met wat hulpkolommen is het goed te doen, ook voor 1200 regels en 10 kolommen

Let op, onderstaande formules gelden als je een header hebt en dus in rij 2 begint! In jouw voorbeeld heb je geen header.

Recept:
Voor elk level in je boomstructuur maak je een extra kolom. In deze kolommen zet je de volgende formules:
code:
1
2
3
4
5
6
7
8
J2:=IFERROR(MATCH("ZZZZZZZZZZ",A$1:A1,1),0)
K2:=IFERROR(MATCH("ZZZZZZZZZZ",B$1:B1,1),0)
L2:=IFERROR(MATCH("ZZZZZZZZZZ",C$1:C1,1),0)
..
J3:=IFERROR(MATCH("ZZZZZZZZZZ",A$1:A2,1),0)
K3:=IFERROR(MATCH("ZZZZZZZZZZ",B$1:B2,1),0)
L3:=IFERROR(MATCH("ZZZZZZZZZZ",C$1:C2,1),0)
...

De formules zijn dus allemaal hetzelfde als je copy-paste. Je vindt hiermee per kolom de laatste waarde boven de rij van de cel. Dat is overigens de reden om de data op rij 2 te beginnen. Je krijgt anders een foute formule aangezien A$1:A0 niet mag.

Daarna volgt je antwoord uit:
code:
1
2
3
4
I2: =OFFSET($A$1,MAX(J2:L2)-1,MATCH(MAX(J2:L2),J2:L2,0)-1)
I3: =OFFSET($A$1,MAX(J3:L3)-1,MATCH(MAX(J3:L3),J3:L3,0)-1)
I4: =OFFSET($A$1,MAX(J4:L4)-1,MATCH(MAX(J4:L4),J4:L4,0)-1)
...

MAX(J2:L2) is de rij waarin de bovenliggende waarde staat, MATCH(MAX(J2:L2),J2:L2,0) is de bijbehorende kolom.

[ Voor 11% gewijzigd door KabouterSuper op 01-04-2021 11:55 ]

When life gives you lemons, start a battery factory


Acties:
  • +1 Henk 'm!

  • SinergyX
  • Registratie: November 2001
  • Laatst online: 12:41

SinergyX

____(>^^(>0o)>____

=ALS(ISLEEG(A4);ALS(ISLEEG(VERSCHUIVING(A4;-1;VERGELIJKEN(TEKST.SAMENVOEGEN(A4;B4;C4;D4;E4;);A4:E4)-2));I3;VERSCHUIVING(A4;-1;VERGELIJKEN(TEKST.SAMENVOEGEN(A4;B4;C4;D4;E4;);A4:E4)-2));A4)

Verdient geen hoofdprijs, maar werkt wel :+

Edit, niet helemaal, zie dat je ook top gebruikte :/

Al zou ik gewoon met tussenkolomen blijven werken, dat gaat aanzienlijk makkelijker om stap voor stap data te normaliseren dan het in 1x te willen doen.

[ Voor 31% gewijzigd door SinergyX op 01-04-2021 11:24 ]

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 22:27

g0tanks

Moderator CSA
Volgens mij werkt onderstaande, maar alleen als de echte data het format hanteert zoals in jouw voorbeeld. Ik bepaal eerst met INDEX+MATCH de kolomnummer (1-4) waarin een waarde staat. Vervolgens pas ik de volgende logica toe om de bovenligende waarde te bepalen:
  1. TOP
  2. TOP
  3. Eerste karakter van ingevulde waarde (A1 wordt A)
  4. Eerste twee karakters van ingevulde waarde (A1.1 wordt A1)
code:
1
=CHOOSE(MATCH(TRUE;INDEX(A2:D2<>0;);0);"Top";"Top";LEFT(C2;1);LEFT(D2;2))

Afbeeldingslocatie: https://tweakers.net/i/D4un8H6eCbOqbQY3grFB0fe2MD8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/j7PNjukcAVcD3MzctwxWPPWB.png?f=user_large

[ Voor 5% gewijzigd door g0tanks op 01-04-2021 12:32 ]

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW

Pagina: 1