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

Indirect

Status
Niet open voor verdere reacties.

lukasvandijk

Gebruiker
Lid geworden
11 mrt 2015
Berichten
28
Hoi Allemaal,

Ik probeer een gedeelte van een formule te vervangen door de functie INDIRECT zodat ik bij het kopiëren en plakken van de formule niet zoveel hoef aan te passen, kom er alleen niet helemaal uit. Bestand bijgevoegd.

Werkend:

Code:
=E4/5*VERT.ZOEKEN(Jan[COLOR="#FF0000"][/COLOR]uari[[#Totalen];[Medewerker]];Data[#Alles];7;)
Stukje Januari zou ik 'dynamisch' willen op basis van een cel waar ik deze waarde inzet.

Wat ik probeer:

HTML:
=E18/5*VERT.ZOEKEN(INDIRECT("B29")&"[[#Totalen];[Medewerker]]";Data[#Alles];7;)
Tips en suggesties?
Bedankt weer
 

Bijlagen

  • Helpmij.xlsx
    20,3 KB · Weergaven: 19
Laatst bewerkt:
Deze formule in F18:

=E18/5*VERT.ZOEKEN(B$29;Data[#Alles];7;)
 
Maak gebruik van code of php tags, heb je die ontbrekende haakjes en die smiley ook niet.

En je vergeet het laatste argument in dit geval.
 
@lukasvandijk:
Gewoon proberen zou ik zeggen.

@HSV:
Goede tip ;-)
 
Als ik de voorgestelde formule gebruik, dan werkt die alleen voor die tabel. Als ik de formule plak in een tabel met een andere maand, blijft die logischerwijs naar $29 kijken. Is er een manier waarop ik in de tabel de formule zo kan schrijven dat dat het wel werkt? Ik wilde het dus oplossen de tekst januari dynamisch te maken met de formule INDIRECT. Zodat de maand altijd gevuld wordt door wat er in de tabel staat geschreven, zo kan de formule makkelijk gekopieerd en geplakt worden. Vooral in het kader kader om te kjken wat er allemaal mogelijk is met Excel ook hoor, de voorgaande oplossing werkt natuurlijk ook


Code:
=E7/5*VERT.ZOEKEN(Januari[[#Totalen];[Medewerker]];Data[#Alles];7;)
 

Bijlagen

  • Helpmij.xlsx
    19,4 KB · Weergaven: 17
Als de naam van je tabel altijd dezelfde is kun je gebruik maken van een indirecte verwijzing naar de totaalrij van je tabel.

Onderste rij:
Code:
r = RIJ(tabelnaam)+RIJEN(tabelnaam)

Linker kolom:
Code:
k = KOLOM(tabelnaam)

Cel linksonder:
Code:
=INDIRECT(ADRES(r;k))
dus
Code:
=INDIRECT(ADRES(RIJ(tabelnaam)+RIJEN(tabelnaam);KOLOM(tabelnaam)))

In cel F4 staat nu:
Code:
=E4/5*VERT.ZOEKEN(B$29;Data[#Alles];7;)

B$29 vervang je dan door:
Code:
INDIRECT(ADRES(RIJ(tabelnaam)+RIJEN(tabelnaam);KOLOM(tabelnaam)))

dat wordt dan
Code:
=E4/5*VERT.ZOEKEN(INDIRECT(ADRES(RIJ(tabelnaam)+RIJEN(tabelnaam);KOLOM(tabelnaam)));Data[#Alles];7;)

Omdat je tabel, ietwat verwarrend, de naam Januari draagt wordt het:
Code:
=E4/5*VERT.ZOEKEN(INDIRECT(ADRES(RIJ(Januari)+RIJEN(Januari);KOLOM(Januari)));Data[#Alles];7;)
 
Laatst bewerkt door een moderator:
De tabel van januari heet januari.
De tabel van februari heet januari20

Het probleem blijft dan bestaan als je de bovenstaande formule van tabel januari naar tabel februari (januari20 genaamd) kopieert dat de verwijzing naar de januar-tabel blijft staan.
 
probeer deze eens:
Code:
=E18/5*VERT.ZOEKEN(INDEX(B18:B32;X.VERGELIJKEN($B$1;B18:B30;0;1)-1);Data[#Alles];7;)
 
Of met VBA:

Code:
=E4/5*VERT.ZOEKEN(Tabelnaam(B4);Data[#Alles];7;)
Code:
Function Tabelnaam(rng As Range) As String
    Tabelnaam = rng.Cells(1).ListObject.Name
End Function
 
En nog steeds vergeten de 'helpers' het argument "BENADEREN".
 
Default voor BENADEREN is ONWAAR, dus kan hier weggelaten worden toch?
 
Laatst bewerkt door een moderator:
Dan zou ik de HELP er nog maar eens op nalezen als je het niet zeker weet!

Je zou het al kunnen zien aan de waarde die je ophaalt.
 
Default benaderingswijze in VERT.ZOEKEN = WAAR (= benaderen).
Dus als je wilt benaderen kan je de parameter weglaten.
 
Laatst bewerkt:
Harry, je hebt gelijk :thumb: de maanden staan niet op alfabetische volgorde. dus benaderen moet op Onwaar
 
Default is inderdaad WAAR, maar dan moet je lijst gesorteerd zijn en dat is het niet.

Edit: Sylvester. :thumb:
 
Trouwens

Codeer in F4:
Code:
=E4/5*VERT.ZOEKEN(Januari[[#Totalen];[Medewerker]];Data;7;ONWAAR)
(het generen van Januari[[#Totalen];Medewerker]] gaat vanzelf als je op dat veld klikt.)

Als je daarna de tabel kopieert met CTRL-C - CTRL-V dan heet de nieuw tabel januari<n> en is de bovenstaande verwijzing in de nieuwe tabel automatisch ook gewijzigd in januari<n>
[De eerste keer n = 2]

Daarna hoef je alleen maar onder in de nieuwe tabel de maand januari aan te passen in februari. Dan gaat het al goed. En worden de aantal werkdagen van februari opgehaald.
Voor de duidelijkheid zou ik de tabelnaam januari<n> ook nog wijzigen in februari, dan wijzigen de verwijzingen ook van januari<n> naar februari.

Of noem de tabel Maand.
Dan krijg je daarna automatisch de tabelnamen Maand2, Maand3 enzovoort.
 
Laatst bewerkt:
Graag VBA code tussen de code tags plaatsen anders is het onleesbaar voor de helpers. Enkele berichten daarom aangepast.
 
Ik heb het net ook even geprobeerd

1. Tabelnaam aanpassen in maand
2. Zorg voor de juiste formule in F4: =E4/5*VERT.ZOEKEN(Maand[[#Totalen];[Medewerker]];Data;7;ONWAAR)
[ Dit staat al goed in origineel van Lucas in post #1] Verder geldt als tabelnaam wordt aangepast bovenstaand label natuurlijk ook wordt aangepast]
3. Daarna CTRL-C en 11 * CTRL-V van de gehele tabel
4. De maandnamen links onderin aangepast.

Verder niets.
En alle verwijzingen staan automatisch precies goed.

Geen gedoe met (extra) indirecte verwijzingen,
 

Bijlagen

  • Helpmij HD.xlsx
    38,7 KB · Weergaven: 14
Laatst bewerkt:
Ja dat is denk ik de meest elegante oplossing Hans! Bedankt voor al de reacties, leerzaam!
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan