Van links naar rechts:
Code:
Als(som(gegeven!F:F)<=(RIJ()-2);""
Zorgt er voor dat wanneer wanneer het totaal van kolom F (je totaal aantal etiketten) kleiner is dan de betreffende rij (-2 vanwege locatie eigen cel en je titelrij) de cel leeg blijft en niet #n/b als waarde geeft. Dit is puur voor "de mooi"...
Code:
ALS(AANTAL.ALS(A$1:A2;A2)<(INDEX(Gegevens!F:F;VERGELIJKEN(A2;Gegevens!A:A;0)))
Dit kijkt naar de cel erboven en telt in de rijen erboven op hoe vaak deze in de kolom voor komt (aantal.als). Vervolgens vergelijkt hij deze met de in kolom F opgegeven hoeveelheid voor het artikel genoemd in A2. De opgegeven hoeveelheid zoekt hij op met INDEX. Deze formule wil als input de kolom en rij. De kolom kan je gewoon aangeven (F:F), de rij is dus afhankelijk van de waarde in A2. Deze krijg je door VERGELIJKEN(zoekwaarde;zoekbereik).
De als formule zorgt ervoor dat wanneer het aantal keer dat de artikelcode minder vaak voorkomt dan de opgegeven hoeveelheid, hij de artikelcode nog een keer weergeeft. Als dit niet het geval is (indien ONWAAR), willen we dat hij het volgende artikelnummer oprakelt. Aangezien we het verband kwijt zijn met de locaties van de cellen waar we de informatie vandaan willen halen moeten we die wat onhandig opnieuw opbouwen in het laatste stuk:
Code:
INDIRECT(ADRES(VERGELIJKEN(A2;Gegevens!A:A;0)+1;1;1;1;"Gegevens"))
Met adres vraag je het specifieke adres op basis van "coördinaten". Allereerst wil hij de rij weten, dat is de rij onder de rij waarin de waarde van A2 te vinden is. Dat doen we door VERGELIJKEN(A2;gegevens!A:A)+1. De kolom is een makkelijke, dat is in dit geval 1 (A is 1, B is 2 etc...). Dan wil hij weten of het absoluut moet en in welke format hij de waarde moet geven. Voor beide geldt 1 (zie ;1;1) en als laatste wat Excel voor de celverwijzing moet zetten: Gegevens. Als resultaat levert deze formule bijvoorbeeld 'Gegevens'!A4 . Omdat we deze niet als tekst willen hebben maar juist de inhoud van deze cel zetten we INDIRECT in. Deze haalt de inhoud van deze formule op.
dan alles op de juiste manier in haakjes zetten en het resultaat is:
Code:
=ALS(SOM(Gegevens!F:F)<=(RIJ()-2);"";ALS(AANTAL.ALS(A$1:A2;A2)<(INDEX(Gegevens!F:F;VERGELIJKEN(A2;Gegevens!A:A;0)));A2;INDIRECT(ADRES(VERGELIJKEN(A2;Gegevens!A:A;0)+1;1;1;1;"Gegevens"))))
Als je de tabbladnaam wil veranderen dien je dus Gegevens! te vervangen voor jouw tabbladnaam (als je een spatie in je tabbladnaam hebt zitten dien je zowel voor als achter de naam een ' toe te voegen. Vb: Gegevens!A:A wordt 'Tab gegevens'!A:A.
Bij de laatste "Gegevens" in de adresformule hoef je dit juist niet te doen. Daar wordt "Gegevens" "Tab gegevens"