[Excel] Uitlezen inhoud cellenbereik en de gevulde weergeven

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
Hallo,

Ik probeer een lijst te maken met 6 kolommen en in de eerste 2 een formule te zetten die kijkt of in de overige 4 naastgelegen cellen een waarde staat en deze dan in de eerste kolom te zetten.

De 4 rechtse kolommen hebben ook een titel, ik zou ook graag zien dat als er een waarde staat in 1 van deze 4 kolommen dat in de 2e kolom de titel ervan komt te staan.


Dus zeg dat die laatste 4 kolommen als titel APPELS, PEREN, DRUIVEN, KERSEN zijn. En ik heb 2 PEREN, dan zou ik in de eerste kolom die waarde 2 willen zien en in de 2e kolom de naam PEREN.

Als ik vervolgens 3 KERSEN heb (en de 2 peren verwijder) dan zou ik graag zien dat de eerste 2 kolommen zich daar op aanpassen en weergeven '3 KERSEN'.

Ik hoop dat de vraag duidelijk is.
Ik heb het idee dat het veel in elkaar geweven ALS() en LEEG() formules zijn, maar ik krijg het niet voor elkaar.

Een beetje hulp zou fijn zijn.

					
Aantal	Soort   |	Appels	Peren	Druiven	   Kersen
			 	
2	Appels	|	2	   		
3	peren	|		3		
5	Kersen	|				   5
						

[ Voor 7% gewijzigd door BLACKfm op 06-07-2016 13:34 ]

Litebit.eu voorraad check :).

Alle reacties


Acties:
  • 0 Henk 'm!

  • GNID
  • Registratie: Januari 2005
  • Niet online
Wat heb je zelf al bedacht?
Toon gewoon hoever je zelf al gekomen bent, dan kan men daar verder mee ...

(Ik heb inmiddels al wel een vrij simpele oplossing bedacht, maar het is hier geen afhaal-chinees, waar je ook nog eens niet hoeft te betalen)

Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 14:39

Belindo

▶ ─🔘─────── 15:02

Wat je hier nodig hebt is een array formule die in die vier kolommen zoekt naar een waarde die niet leeg is. Als je die weet kun je dmv. index/match de waarde tonen. Voor je 2e kolom, waar je de soort wilt, is het dezelfde formule, alleen return je dan de waarde in de eerste rij.

Zoals GNID al zei wordt er meestal geen kant en klare code gedumpt, maar met deze stappen moet je al een heel eind komen.

Wat heb je tot nu toe al voor elkaar?

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
Als ik het zou weten dan had ik het niet gevraagd uiteraard :P.

Maar ik heb een poging gedaan in de vorm van (niet volledig, dat weet ik, lees verder :));

=ALS(C2="";ALS(D2="";ALS(E2="";ALS(F2="";"LEEG")));C2)


Als ik dit helemaal uitwerk voor alle cellen wordt de controle wel wat aan de lange kant, maar dan zou ik wel enigzins kunnen filteren op inhoud.

In dit geval (en ik ga er van uit dat het de werking is van bovenstaande code) kijkt deze of er een waarde is te vinden in de eerste kolom (van de 4 kolommen met waardes) en als dat niet zo is dan gaat deze vervolgens naar de volgende kolom.

Hier zou ik dan verder in verwerken dat zodra er inhoud is gevonden in 1 van die kolommen dat de waarde dan wordt weergegeven, wat die nu enkel doet bij de eerste kolom.

In simpele tekst staat er "Als de cel leeg is dan ga ik de volgende kolommen af, maar als de cel wel gevuld is dan wil ik de inhoud van die cel zien, in dit geval C2".

Maar het lijkt me dat dit wel simpeler kan.

Bovenstaand kan ik dan uiteraard ook gebruiken voor de 'soort', C2 word dan C1 (of een andere zelfingevoerde waarde), welke de titel van de bewuste kolom bevat.

Litebit.eu voorraad check :).


Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 14:39

Belindo

▶ ─🔘─────── 15:02

Bovenstaande is correct, maar zul je voor elke kolom moeten doen. Maar als je de logical test omdraait, kun je gelijk resultaat tonen, voor elke kolom.

Dus: Als C2 NIET leeg is, toon dan C2, anders doe hetzelfde voor D2, etc

Pseudocode: =IF(C2<>"",C2,IF(D2<>"",D2,"all empty"))

Voor je titels kun je dan hetzelfde doen, alleen return je dan C1, D1, etc.

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • GNID
  • Registratie: Januari 2005
  • Niet online
Omdat je -per definitie- maar 1 "fruitsoort" per regel kunt gebruiken, kun je bovenstaande terugbrengen tot: SUM(C2:F2)

Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
GNID schreef op woensdag 06 juli 2016 @ 15:50:
Omdat je -per definitie- maar 1 "fruitsoort" per regel kunt gebruiken, kun je bovenstaande terugbrengen tot: SUM(C2:F2)
Helemaal terugbrengen? SUM (SOM) met een range lijkt me wat dat betreft langer dan na een ALS controle de bewuste cel te benoemen, of ik mis iets in je bedoeling...

Litebit.eu voorraad check :).


Acties:
  • 0 Henk 'm!

  • GNID
  • Registratie: Januari 2005
  • Niet online
Je benoemt met jouw/ Belindo's formule de cel niet, maar geeft de inhoud van de cel weer.

Mijn formule is deel 1 van de oplossing, ter vervanging van:

"=IF(C2<>"",C2,IF(D2<>"",D2,IF(E2<>"",E2,IF(F2<>"",F2,"all empty"))
(of jouw eigen code)


SUM(C2:F2) is wat je in cel A2 wilt hebben staan. Het is bovendien een stuk sneller en eenvoudiger voor het systeem om door te rekenen dan geneste IF constructies.


Overigens gebruik ik geen Excel (want LibreOffice), dus formules zullen hier en daar "ondertiteld" moeten worden.

[ Voor 71% gewijzigd door GNID op 06-07-2016 16:21 ]


Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 14:39

Belindo

▶ ─🔘─────── 15:02

Goeie GNID, ik ging er even vanuit dat er meer dan alleen nummers in konden voorkomen.

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • The_Vice
  • Registratie: Augustus 2002
  • Laatst online: 03-06 20:05
BLACKfm schreef op woensdag 06 juli 2016 @ 08:25:
...
					
Aantal	Soort   |	Appels	Peren	Druiven	   Kersen
			 	
2	Appels	|	2	   		
3	peren	|		3		
5	Kersen	|				   5
						
Als ik het zou doen zou ik, en zou presenteren zoals jij het hier laat zien dan zou ik kiezen voor een "presentatie" via een pivot table, daar zit bijna alles in zoals je het hier laat zien.

Maar dan eerst je data gedeelte terugbrengen tot:
kolom A       B        C              D
      Aantal  Soort    Dummy.Aantal   Dummy.Soort
      2       Appels   =A2            =B2
      3       peren    =A#            =B#
      5       Kersen   =A#            =B#


En dan in pivot table, op nieuw sheet:
rijen:
  • Aantal
  • Soort
kolommen:
  • Dummy.Soort (middels de dummy, anders kan je soort etc. niet twee keer gebruiken in pivot table)
waarden
  • Dummy.Aantal
Dan in pivot table options, onder display klassieke view kiezen, dat werkt iets lekkerder.

Mag ik vragen waarom je aantal zowel in de eerste als in de verzamel kolom wil terug laten komen?

Acties:
  • 0 Henk 'm!

  • Pindakaas
  • Registratie: December 2010
  • Laatst online: 03-06 23:44
GNID schreef op woensdag 06 juli 2016 @ 16:01:
Je benoemt met jouw/ Belindo's formule de cel niet, maar geeft de inhoud van de cel weer.

Mijn formule is deel 1 van de oplossing, ter vervanging van:

"=IF(C2<>"",C2,IF(D2<>"",D2,IF(E2<>"",E2,IF(F2<>"",F2,"all empty"))
(of jouw eigen code)


SUM(C2:F2) is wat je in cel A2 wilt hebben staan. Het is bovendien een stuk sneller en eenvoudiger voor het systeem om door te rekenen dan geneste IF constructies.


Overigens gebruik ik geen Excel (want LibreOffice), dus formules zullen hier en daar "ondertiteld" moeten worden.
Dit dus.

En vervolgens via horizontaal zoeken haal je de kolomkop erbij.

don't mind me


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Dat kan, maar i.p.v. een hoop if jes gevolgd door horizontaal zoeken zou ik toch liever met
'=vergelijken(0;c2:g2;-1)' de kolomindex van het eerste getal groter dan 0 ophalen en vervolgens met index de waarde(n) uit de verschillende bereiken uitlezen.

Om de waarde op te halen kun je ook horiz.zoeken gebruiken met een zoekwaarde van bv 999 en benaderen aan.

[ Voor 17% gewijzigd door Lustucru op 06-07-2016 19:56 ]

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


Acties:
  • 0 Henk 'm!

  • GNID
  • Registratie: Januari 2005
  • Niet online
Inderdaad.

=CHOOSE(MATCH(A7;C7:F7;0);$C$1;$D$1;$E$1;$F$1)
Zoek index getal en gebruik deze index om in fruitsoorten te zoeken.

IF blijft redelijk overzichtelijk als het inderdaad maar 4 soorten zijn. Worden het er meer (waar ik eigenlijk van uit ging), zou ik iets als bovenstaand gebruiken.
Volgens mij heeft Excel hier nog een slimmere functie voor, maar die ken ik niet (meer) uit m'n hoofd.

Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
Ondanks de ogenschijnlijk andere opties heb ik het toch gelaten bij een =ALS() variant.

=ALS($J14="";ALS($K14="";ALS($L14="";ALS($O14="";"Leeg";$O14);$L14);$K14);$J14)


Verder nog wat 'verborgen' cellen gebruikt voor controles en voorwaardelijke opmaak ter foutcontrole (geen dubbele/extra waardes per rij).

Hoe dan ook wist ik zelfs dat nog niet alvorens dit topic, dus het heeft enigzins geholpen :P.

Gezien ik de andere dingen niet getest heb kan ik zo gauw niet 'het juiste antwoord' aanvinken. Dus in dat kader geen bevestiging.

[ Voor 15% gewijzigd door BLACKfm op 07-07-2016 14:54 ]

Litebit.eu voorraad check :).


Acties:
  • 0 Henk 'm!

  • GNID
  • Registratie: Januari 2005
  • Niet online
BLACKfm schreef op donderdag 07 juli 2016 @ 14:53:
Gezien ik de andere dingen niet getest heb ...
Tjonge, jij maakt mensen echt enthousiast om jou te helpen .....

Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
GNID schreef op vrijdag 08 juli 2016 @ 13:31:
[...]


Tjonge, jij maakt mensen echt enthousiast om jou te helpen .....
Dat soort reacties nodigen ook echt uit om (meer) vragen te stellen op t.net.

Als het werkt dan werkt het, het is niet dat ik tijd over heb om alle opties te proberen.

Litebit.eu voorraad check :).

Pagina: 1