• 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.

ALS / IF functie

Status
Niet open voor verdere reacties.

EdeBruyn

Gebruiker
Lid geworden
28 nov 2016
Berichten
22
Hallo allemaal,

Mijn naam is Emile en ben nieuw hier op dit forum. Voor mijn werk steeds meer bezig met Excel, maar loop tegen iets (denk ik) vrij eenvoudigs aan waar ik niet helemaal uit kom.

Ik ben een databestand (1 bestand met meerdere tabbladen) aan het maken waar ik leveranciersgesprekken in aan het verwerken ben. Deze leveranciers doen verschillende voorstellen (budgetten e.d.), deze staan op het tablad genaamd 'Gespreksdata'. Nu wil ik in een ander tabblad data opvragen m.b.t. de voorstellen uit het tabblad gespreksdata met de 'ALS' functie van Excel.

Op het tabblad 'Gespreksdata' staan tot maximaal 5 voorstellen 'weggeschreven'. Bij de ene leverancier is er maar 1 voorstel ingevuld (de andere 4 dus leeg), bij de andere zijn alle 5 de voorstellen ingevuld. Nu wil ik op het andere tabblad, 'Data opvraag', automatisch de bedragen laten invullen van het laatste voorstel wat is gedaan door de leverancier. Bij de ene is dat dus voorstel 1, bij de ander dus voorstel 5.

Met de 'ALS' functie had ik voor ogen dat als het veld van voorstel 5 leeg was, hij ging kijken naar voorstel 4, als die leeg is, naar voorstel 3 etc. Het veld wat ie als eerste tegenkomt (dus het laatste voorstel) zou moeten worden ingevuld.

Hopelijk snappen jullie de constructie, anders hoor ik het graag. Zelf had ik de volgende formule gefabriceerd, maar is helaas niet juist:

=ALS(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;106;ONWAAR)>0;ALS(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;89;ONWAAR)>0;ALS(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;72;ONWAAR)>0;ALS(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;55;ONWAAR)>0;""))))


Hopelijk kunnen jullie mij helpen, hoor het graag!

Mvg,

Emile
 
Is het te zoeken item steeds het laatst ingevulde van die rij, dus komt het gegeven uit de laatste gevulde kolom van die rij?
Intussen kan je deze eens testen:

Code:
=ALS.FOUT(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;106;ONWAAR);ALS.FOUT(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;89;ONWAAR);ALS.FOUT(VERT.ZOEKEN($A$4;Gespreksdata!$A$4:$DR$300;55;ONWAAR);"")))
 
Laatst bewerkt:
Dank voor de snelle reactie!

Op de rijen staan alle leveranciers bij naam, op de kolommen staan alle voorstellen / gegevens die de betreffende leverancier gedaan heeft. Een leverancier geeft per voorstel echter 16 verschillende gegevens door. In het data opvraag tabblad wil ik dus een overzicht maken van het laatste voorstel wat is gedaan (en dus ook 16 verschillende gegevens).

De data staat dus wel achter elkaar, alleen moet Excel dus (indien voorstel 5 leeg is) 16 stappen terug om te kijken of voorstel 4 leeg is. Is deze niet leeg, invullen, is deze wel leeg, 16 stappen terug kijken of voorstel 3 leeg is.
 
Code geprobeerd, deze werkt helaas niet. Deze blijft waarde 0 geven in het data opvraag bestand, in totale data overzicht (gespreksdata) wordt de ingevulde waarde rood gearceerd.

Tevens zie ik dat ik zelf ook een foutje heb gemaakt in de eerder gekopieerde code, dat is namelijk dat er nu geen 5 voorstellen in verwerkt staan, maar kolom 38 en 72 moeten nog worden toegevoegd in de formule.

Dank alweer!
 
Kan je een vb'tje posten zodat we zien wat er wanneer moet gebeuren?
 
Ik heb 2 foto's toegevoegd waarop hopelijk iets duidelijker wordt wat de opzet van het Excel bestand is. In dit geval is in 'gespreksdata' alleen voorstel 1 ingevuld, voorstel 2 (en de rest van de voorstellen die verder staan in het bestand) zijn leeg.

In het bestand 'data opvraag' moet dus automatisch voorstel 1 van de betreffende leverancier worden getoond. Indien er geen enkel voorstel is ingevuld, moet het veld eigenlijk leeg blijven.


GESPREKSDATA.png



DATA_OPVRAAG.png
 

Bijlagen

  • DATA_OPVRAAG.png
    DATA_OPVRAAG.png
    23,8 KB · Weergaven: 49
Laatst bewerkt:
De oplossing van Cobbe in post #2 werkt wél met de constructie ALS.FOUT(1/(1/waarde1);ALS.FOUT(1/(1/Waarde2) etcetera.
De fout wordt dan getriggerd door deling door 0: 1/(1/0) is fout, maar bijvoorbeeld 1/(1/2) = 1/0,5 = 2.
In de bijlage een voorbeeld met eigen gegevens.
Daarbij heb ik ook een hulpveld gebruikt in B2 zodat je maar 1 keer hoeft te zoeken.
Code:
C2: =ALS.FOUT(1/(1/INDEX(Gespreksdata!$K$1:$K$10;B2));ALS.FOUT(1/(1/INDEX(Gespreksdata!$I$1:$I$10;B2));ALS.FOUT(1/(1/INDEX(Gespreksdata!$G$1:$G$10;B2));ALS.FOUT(1/(1/INDEX(Gespreksdata!$E$1:$E$10;B2));ALS.FOUT(1/(1/INDEX(Gespreksdata!$C$1:$C$10;B2));"Niet gevonden")))))
 

Bijlagen

EdeBruyn,

welkom op Helpmij.nl!

Het is een goede gewoonte om een vraag te illustreren aan de hand van een Excel (voorbeeld)bestand, waarin de situatie zich voordoet, maar zonder "gevoelige" informatie.
De vraag van @Cobbe is dan ook naar een Excelbestand en niet naar plaatjes, want dit forum gaat over Excel....
 
@Marcelbeug

Dank voor de hulp, ik ben nog enigszins een leek met Excel, ik zie helaas nog niet 1,2,3, hoe ik dit moet vertalen voor mijn eigen sheet en wat precies de functie is van het 'hulpveld'.

@ Haije

Begrijpelijk, ik zal nog wel even een nieuw sheetje maken in Excel :)
 
Ik heb een vereenvoudigd Excel-sheet gemaakt met daarin de twee benodigde tabbladen. In het voorbeeld is wederom voorstel 1 ingevuld en moet deze automatisch verschijnen bij 'data opvraag'. Indien er geen enkel voorstel is ingevuld, moet het veld leeg blijven bij data opvraag.
 

Bijlagen

EdeBruijn,

Bedankt voor de terugmelding, maar mogen we ook weten hoe?
 
Ik heb het inderdaad provisorisch opgelost door in de algehele datasheet aan het eind 6 extra kolommen toe te voegen. De eerste extra kolom kijkt of in voorstel 1 het veld leeg is ja of nee. Zo ja wordt er een 1 weggeschreven, zo nee een 0. Voor voorstel 2 precies hetzelfde t/m kolom 5. Extra kolom 6 telt de eentjes en nullen bij elkaar op. De code wordt dan als volgt:

Code:
=ALS(VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;128;ONWAAR)=5;VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;106;ONWAAR);ALS(VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;128;ONWAAR)=4;VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;89;ONWAAR);ALS(VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;128;ONWAAR)=3;VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;72;ONWAAR);ALS(VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;128;ONWAAR)=2;VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;55;ONWAAR);ALS(VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;128;ONWAAR)=1;VERT.ZOEKEN('Data opvraag'!$A$4;Gespreksdata!A4:$DX$300;38;ONWAAR);"")))))

Wellicht omslachtig, maar het werkt EINDELIJK haha.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan