[Excel] Bereik definiëren in array formule

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • FireAge
  • Registratie: Augustus 2002
  • Laatst online: 08:41
Is het mogelijk om in een excel formule een bereik te definiëren en daar in de rest van de formule gebruik van te maken?

Voorbeeld:

code:
1
{=ALS(EN(S11:S17="");"";SOM(ALS($X11:$X17="";ALS($Y11:$Y17="";0;ALS(S11:S17="";0;ALS(S11:S17<$Y11:$Y17;1;0)));ALS($Y11:$Y17="";ALS(S11:S17="";0;ALS(S11:S17>$X11:$X17;1;0));ALS(S11:S17="";0;ALS(S11:S17<$Y11:$Y17;1;ALS(S11:S17>$X11:$X17;1;0)))))))}

Hierin staat veelvuldig het bereik S11:S17.
Nu zou ik deze formule graag vereenvoudigen naar:
code:
1
{= (define a=S11:S17);ALS(EN(a="");"";SOM(ALS($X11:$X17="";ALS($Y11:$Y17="";0;ALS(a="";0;ALS(a<$Y11:$Y17;1;0)));ALS($Y11:$Y17="";ALS(a="";0;ALS(a>$X11:$X17;1;0));ALS(a="";0;ALS(a<$Y11:$Y17;1;ALS(a>$X11:$X17;1;0)))))))}

Of iets dergelijks.
Het bereik moet wel dynamisch blijven, want de cel ernaast zal T11:T17 hebben etc.

Iemand een idee hoe ik dit kan vereenvoudigen?

Acties:
  • 0 Henk 'm!

Verwijderd

Ja, je kunt gebruik maken van namen (in XL2007 te vinden onder Formules->Namen beheren).

Als je bereik dynamisch moet zijn, is het wel van belang dat je deze naam opgeeft terwijl je in dat bereik zelf staat (of in ieder geval in cel S11). Excel zal een gedefinieerde naam automatisch als
code:
1
$S$11:$S$17
weergeven, maar je kunt de $-tekens zelf verwijderen.

Acties:
  • 0 Henk 'm!

  • Tazzios
  • Registratie: November 2001
  • Laatst online: 08:32

Tazzios

..

(heel) erg offtopic:

het is wel een heel hypothetische formule met 11 ALS statements. :+

Acties:
  • 0 Henk 'm!

  • FireAge
  • Registratie: Augustus 2002
  • Laatst online: 08:41
Verwijderd schreef op dinsdag 20 juli 2010 @ 11:48:
Ja, je kunt gebruik maken van namen (in XL2007 te vinden onder Formules->Namen beheren).

Als je bereik dynamisch moet zijn, is het wel van belang dat je deze naam opgeeft terwijl je in dat bereik zelf staat (of in ieder geval in cel S11). Excel zal een gedefinieerde naam automatisch als
code:
1
$S$11:$S$17
weergeven, maar je kunt de $-tekens zelf verwijderen.
Hmm ja heb ik naar gekeken, maar zie niet helemaal hoe ik dat in mijn geval toe zou moeten passen.
Ik heb namelijk honderden velden waar deze formule in staat, en die zijn lang niet allemaal gedefinieerd met bepaalde hoogte etc. Ik probeer het nog eens.
Tazzios schreef op dinsdag 20 juli 2010 @ 11:52:
(heel) erg offtopic:

het is wel een heel hypothetische formule met 11 ALS statements. :+
Klopt :)
De formule vergelijkt elk element met een maximum en/of een minimum. Als een element wel een maximum maar geen minimum heeft, moet hij er alleen onder liggen, als beide ertussen etc etc.

Acties:
  • 0 Henk 'm!

Verwijderd

Tsja, dan wordt het al wat lastiger. Ik weet overigens niet met welke Excelversie je werkt, maar als je met 2007 werkt kun je dit probleem ook heel eenvoudig oplossen door gebruik te maken van tabellen. In dat geval regelt Excel het naamgevingswerk al voor je (=je kunt de naam van de kolom gebruiken waarin je gegevens staan, waarmee meteen naar het hele databereik eronder wordt verwezen), en hoef je je ook niet druk te maken over het aantal regels in dat bereik (1 of 1.000.000; de naam blijft altijd hetzelfde). Bovendien zijn die kolom-namen relatief.

Acties:
  • 0 Henk 'm!

  • FireAge
  • Registratie: Augustus 2002
  • Laatst online: 08:41
Helaas, we werken op het werk nog met 2003.
Ik zou het wel op kunnen lossen met een formule.

CheckValesValid(Range;MaxCol;MinCol) oid.

Maar dan krijg je weer dat excel begint te piepen over het gebruik van macro's als andere mensen het willen gebruiken.

Ik laat het voor nu maar zo denk ik, dan moet ik wel voor iedere groep even de nieuwe hoogte invoeren, maar kan ik horizontaal gewoon cp-en.

In ieder geval bedankt voor de suggesties en het meedenken.

Acties:
  • 0 Henk 'm!

  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

kun je wat met een off-set? of een named range?

google daar maar eens op
Pagina: 1