• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Probleem wanneer als "een getal" dan niet dat getal anders wel.

Status
Niet open voor verdere reacties.

mvanoldeniel

Gebruiker
Lid geworden
26 nov 2015
Berichten
6
Hallo beste mensen,

ik heb een probleem want ik wil graag het volgende voor elkaar krijgen: =ALS(A1=1;geen(1);""). Alleen weet ik niet hoe ik het 'geen' gedeelte moet doen, ik kan wel NIET gebruiken maar dan komt er onwaar te staan en het moet zijn als A1=1 is, moet A2 geen 1 zijn. Eigenlijk moet het dan dus =ALS(A1=1;A2≠1;"") zijn maar dat werkt natuurlijk niet.

Alvast bedankt,
mvanoldeniel
 
In A2:
Code:
=ALS(A1=1;"geen 1";"")

Je zal zelf moeten invullen wat "geen 1" is. Is dat -1, 12, pi, 4059, 26-11-2015 of toch de tekst "geen 1"? Alles ik goed, want als ik jouw vraagstelling volg is ALLES ongelijk aan 1 goed. Maar ALLES past niet in 1 cel.

Wat probeer je precies te bereiken met de gevraagde oplossing?

Het helpt ook om een representatief voorbeeldje mee te plaatsen om snel een oplossing te krijgen.
 
Laatst bewerkt:
Wat moet A2 dan wel zijn? Jij zegt als A1 is 1 dan is A2 geen 1 anders moet A2 leeg zijn.

Als er inderdaad de tekst "geen 1" moet verschijnen, dan ga ik ook voor AlexCEL
 
Laatst bewerkt:
de bedoeling is dat er in a2 niet hetzelfde als in a1 moet staan oftewel geen als a1 is 1 geen 1 maar 2,3,4 enzo voort daar hoeft geen limiet op
ps: bedank allen voor de zeer snelle reactie!
 
Code:
=Als(A1<>A2;"ongelijk";"")

Als A1 ongelijk is aan A2 verschijnt de tekst "ongelijk"

Met vriendelijke groet,


Roncancio
 
Is er niet een optie dat 'als a1=1 dan geen 1' met 1 als functie en geen als een formule en niet als woord.
Ik probeer namelijk een selectie op een rijtje te krijgen maar waarschijnlijk ben ik dit zo heel omslachtig aan het doen, want dit werkt niet echt:confused:.
Anders zou ik graag een andere manier om een gekozen selectie op te sommen horen

mvg,
mvanoldeniel

PS:Hierbij mijn bestand het even de namen van de artikelen weggehaald dat is helaas privé, op het derde werkblad zou ik dan de lijst met opgesomde producten willen zien.
Bekijk bijlage bewerking van bestand.xlsm
 
Het voorbeeld schijnt een geheel nieuw licht op de zaak.

Het gaat hier dus om data-extractie.

Je kan het met een draaitabel proberen of met VBA, maar ook met een zogenaamde matrix formule (die moet je bevestigen met Ctrl+Shift+Enter; Excel zet er dan accolades omheen {}).

De basisvorm, in blad 'Totaal en Extra'!B4, bevestigd met Ctrl+Shift+Enter en gekopieerd naar beneden:
Code:
=INDEX('---'!$B$2:$B$31;KLEINSTE(ALS('---'!$BA$2:$BA$31;RIJ('---'!$B$2:$B$31)-RIJ('---'!$B$2)+1);RIJEN(B$4:B4)))
Dit pakt van de artikelen in blad '---' de artikelen met WAAR in kolom BA. Met KLEINSTE wordt op regel 4 de eerste gepakt, op regel 5 de tweede enzovoorts.

Vereenvoudigd voorbeeld: stel je hebt 3 artikelen (A B C) op regel 2 3 4 waarvan A en C geselecteerd zijn.

In B4 zou je dan krijgen:
INDEX(A B C;KLEINSTE(ALS(WAAR ONWAAR WAAR; (2 3 4) - 2 + 1);1), dit wordt:
INDEX(A B C;KLEINSTE(ALS(WAAR ONWAAR WAAR; 1 2 3);1), dit wordt:
INDEX(A B C;KLEINSTE(1 ONWAAR 3);1), dit wordt
INDEX(A B C;1), dit wordt
A

En in B5:
INDEX(A B C;KLEINSTE(ALS(WAAR ONWAAR WAAR; (2 3 4) - 2 + 1);2), dit wordt:
INDEX(A B C;KLEINSTE(ALS(WAAR ONWAAR WAAR; 1 2 3);2), dit wordt:
INDEX(A B C;KLEINSTE(1 ONWAAR 3);2), dit wordt
INDEX(A B C;3), dit wordt
C

Maar dit is slechts de basis:
1. Uit 1 blad i.p.v. 2 (zijn er 2 of nog meer?).
2. Geen foutafvanging als er geen geselecteerde artikelen meer zijn.
3. Vast bereik in blad '---' (dus extra regels worden niet meegenomen).

De belangrijkste vraag is of deze exercitie inderdaad 2 detailbladen en 1 totaalblad betreft. Als er meer detailbladen bijkomen, dan is een VBA oplossing het meest voor de hand liggend.

Desgewenst wil ik dit wil verder uitwerken met formules (als het beperkt blijft tot 2 detailbladen), maar dat worden dan wel echt geavanceerde formules.
 
Een alternatieve (eenvoudiger) oplossing is nog om een hulpkolom toe te voegen op de detailbladen die begint bij 0 en naar beneden toe verhoogd wordt met 1 voor elk geselecteerd artikel.
In het totaaloverzicht kan deze kolom gebruikt worden als zoekargument.
 
Laatst bewerkt:
Bekijk bijlage bewerking van bestand MB2.xlsm

Bijgaand de alternatieve oplossing met hulpkolommen BD in de detailbladen, waarbij de nummering op blad '---' begint en op blad '...' verder gaat.

Aandachtspunt bij deze oplossing: als je rijen verwijdert of toevoegt, dan moet je wellicht de formules in BD2 opnieuw naar beneden kopiëren.
Dit komt omdat gerefereerd wordt aan gegevens van de voorgaande rij en die verwijzing gaat stuk bij toevoeging/verwijdering.
 
Bekijk bijlage 251919

Bijgaand de alternatieve oplossing met hulpkolommen BD in de detailbladen, waarbij de nummering op blad '---' begint en op blad '...' verder gaat.

Aandachtspunt bij deze oplossing: als je rijen verwijdert of toevoegt, dan moet je wellicht de formules in BD2 opnieuw naar beneden kopiëren.
Dit komt omdat gerefereerd wordt aan gegevens van de voorgaande rij en die verwijzing gaat stuk bij toevoeging/verwijdering.

Zeker heel erg bedankt, ik heb gebrobeerd alles te snappen maar dit lukte helaas niet helemaal. Verder zijn dit wel de enige 2 bladen, dus als u deze uit zou willen werken dan zou ik dit erg op prijs stellen, als dit te veel werk wordt ga ik het zelf uitzoeken. Nogmaals echt heel erg bedankt voor de moeite en tijd, ik waardeer dit echt ;)
Ik ga er morgen nog even goed naar kijken dan kom ik hier zeker op terug.

Mvg,
mvanoldeniel
 
De alternatieve oplossing behoeft op zich geen verdere uitwerking.
De eerstgenoemde oplossing kunnen we beter vergeten. Die is leuk als je geen gebruik kunt maken van hulpkolommen en je van Excel je hobby hebt gemaakt. :cool:

Ik zal de formules van de alternatieve oplossing nader toelichten:

'---'!BD2: =SOM(BD1;--BA2)
De waarde van de bovenliggende cel plus BA2 numeriek gemaakt (met --): WAAR = 1 en ONWAAR = 0. --BA2 is hetzelfde als de formule in BB2: =ALS(BA2=WAAR;1;0).
Hierbij wordt gebruik gemaakt van de eigenschap dat Excel gegevens zo mogelijk numeriek maakt zodra je er mee gaat rekenen.
Bijvoorbeeld ="1"+ "1" levert gewoon 2 op. -WAAR = -1, en --WAAR = 1 (min maal min is plus). Dit schijnt een zeer efficiënte methode te zijn om gegevens numeriek te maken.
SOM werkt ook met lege en alfanumerieke gegevens die dan als 0 meetellen. BD1 is leeg.
In BD staat dus vanaf regel 2 naar beneden telkens een 0 tot aan het eerste geselecteerde artikel, dan telkens een 1 tot aan het tweede geselecteerde artikel enzovoorts.

Aandachtspunt (zoals eerder vermeld) als je bijvoorbeeld regel 12 t/m 22 verwijdert, dan staat in BD12 (de voormalige BD23): =SOM(#VERW!;--BA12)
Er stond een verwijzing naar de vorige regel, maar omdat die verwijderd is, levert dat een #VERW fout op. Remedie: formule opnieuw doortrekken naar beneden.
Als je een regel tussenvoegt (bijvoorbeeld boven regel 13 voeg je een nieuwe regel 12 toe, dan verwijst BD13 (de voormalige BD12) nog steeds naar BD11: =SOM(BD11;--BA13)
Zelfde remedie (ook om de formule in BD12 te krijgen).


Op blad '...' eigenlijk hetzelfde, alleen wordt daar de nummering voortgezet door de formule in BD1: =MAX('---'!BD:BD)

In het vervolg van de uitleg bedoel ik met "je": Excel. ;)
Op blad 'Totaal en rijen' ga je in B4 op zoek naar nummer 1 in BD van blad '---'.
Van het gevonden regelnummer pak je de bijbehorende waarde uit kolom '---'!B.
In B5 ga je op zoek naar nummer 2 enzovoorts totdat je het hoogste nummer van blad '---' gepasseerd bent.
Dan ga je op dezelfde wijze verder zoeken in blad '...' totdat je daar het hoogste nummer gepasseerd bent.
Verdere regels naar beneden worden leeg gelaten.

Dit vertaald in een formule in B4:
Code:
=ALS(RIJEN(B$4:B4)<=MAX('---'!BD:BD);INDEX('---'!B:B;VERGELIJKEN(RIJEN(B$4:B4);'---'!BD:BD;0));ALS(RIJEN(B$4:B4)<=MAX('...'!BD:BD);INDEX('...'!B:B;VERGELIJKEN(RIJEN(B$4:B4);'...'!BD:BD;0));""))

RIJEN(B$4:B4) levert het aantal rijen op van B4 tot en met B4 (1), 1 regel lager is dit het aantal rijen van B4 tot en met B5 (2), enzovoorts.
Dit is dus het relatieve regelnummer dat je gaat zoeken in de detailbladen en waarmee je kijkt of een maximum gepasseerd is.
Zolang dat regelnummer klener/gelijk is dan MAX('---'!BD:BD) zoek je op blad '---'.
Met INDEX('---'!B:B;VERGELIJKEN(RIJEN(B$4:B4);'---'!BD:BD;0)) krijg je de waarde in kolom B op de regel waar dat regelnummer gevonden is - met de functie VERGELIJKEN - in kolom BD.
Die 0 is hetzelfde als ONWAAR en dit geeft aan dat je naar de exacte waarde zoekt.
Zodra je op een relatief regelnummer boven MAX('---'!BD) uitkomt, doe je exact hetzelfde op blad '...'.
Zodra je op een relatief regelnummer komt boven MAX('...'!BD), geef je een lege waarde "" terug.
 
Laatst bewerkt:
Heel erg bedankt hiervoor, ik was zonder dit er zeker niet uit gekomen en heb er erg veel van geleerd. Meer heb ik er eigenlijk niet over te zeggen, gewoon heel erg bedankt :o
 
Dat was ook al in de originele versie...
Maar goed: ik kreeg de melding weg door rechtsklikken in het vakje - kiezen voor macro toewijzen (of assign macro) - naam van de macro verwijderen en op OK drukken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan