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

Formule meegeven met Indirect-formule

Status
Niet open voor verdere reacties.

bveyndhoven

Gebruiker
Lid geworden
3 jan 2012
Berichten
21
Hey allemaal,

Ik gebruik een Engelstalige versie van Excel 2007. Wat ik wil doen is via de indirect-functie een formule ophalen in plaats van een celreferentie

De normale gang van zaken is het volgende:
Code:
A1: 5
A2: 9
A3: 7
C1: 1
C2: =INDIRECT(C1)

Dit geeft in C2 dus de waarde 5. Als in C1 het tekst "A3" wordt ingetypt, komt er 7 te staan.

Wat ik wil doen is dat er in B1 bv staat "SUM(A1:A3") en in B2 bv "AVERAGE(A1:A3)". Als ik in C1 de tekst "B1" intyp zou het resusltaat dus 21 moeten zijn (SUM(a1:a3)) en met de tekst "B2" zou ik moeten uitkomen op 7 (AVERAGE(a1:a3)).

Weet iemand of dit mogelijk is zonder al te veel VBA-code?

Alvast bedankt!
 
Ik denk dat ik hem niet snap want dit is toch eenvoudig, je gaf het antwoord al aan.
Zie bestandje.
 

Bijlagen

Zie bijlage.
Deze aanpak maakt geen gebruik van "indirect" maar van een "genaamde formule", zie ctrl-F3. Hopelijk werkt dit nog in Excel 2007.
 

Bijlagen

Laatst bewerkt:
Bedankt alvast voor jullie antwoorden!

@Cobbe
Cobbe zei:
Ik denk dat ik hem niet snap want dit is toch eenvoudig, je gaf het antwoord al aan.

Niet helemaal. De cellen B1 en B2 bevatten een string en geen formule. Er komt bv. SUM(A1:A3). Dit is een eenvoudig voorbeeldje, bedoeling is dat die formule wordt samengesteld aan de hand van verschillende cellen. Het gaat hem er dus om dat er een tekstwaarde wordt omgezet in een formule.

@WHER
WHER zei:
Deze aanpak maakt geen gebruik van "indirect" maar van een "genaamde formule"
Dit gaat al meer mijn richting uit. Alleen kan ik dan in de cellen C1 en C2 net zo vrolijk gewone formules zetten...

Om even verder toe te lichten: ik heb een tabel waarin bv. een montagesysteem staat, en in de cel ernaast telkens een formule om het aantal klemmen te brekenen. Alleen staat er die niet als formule in maar bv: {HorRijen}*4. Via Substitute(<cel>;"[HorRijen};<een celverwijzing>) zou ik dus bv een tekst genereren in de zin van A5*4. Die tekst zou dus geëvalueerd moeten worden als formule.

Ik heb dus al meerdere forums geraadpleegd en daar kom ik dus uit bij UDF's (User Defined Functions). Dit komt er op neer dat je via VBA een module aanmaakt met daarin kleine functie in de zin van:
Code:
Function Eval (r as Range) as Variant
  Eval = Evaluate(r.Value)
End Function

Op zich werkt dat allemaal prima, maar het nadeel ervan is dat er macro's aan te pas komen. Wanneer mijn systeem dus verder wordt verspreid, worden die per default uitgeschakeld waardoor heel de handel dus niet meer werkt. Daarom dat ik op zoek was naar een manier waarmee ik dat zonder macro's kon doen.

Kortom: de celwaarde van B1 = SUM(A1:A3), die van B2 = AVERAGE(A1:A3). Cel C1 geeft aan welke formule ik wil gaan berkeenen. Stel dat de waarde van C1 gelijk is aan "B1", dan moet de formule dus weergeven wat het resultaat is als de formule van B1 wordt uitgevoerd (dus nu: SUM(A1:A3) = SUM({5, 9, 7}) = 21).

Ingewikkeld gevalletje, maar ik weet niet of VBA dan volledig te vermijden is...

[EDIT] Zie ook deze thread voor een discussie met genaamde formules + UDF's. [EDIT]
 
Laatst bewerkt:
Ik heb het bestand in post #3 veranderd in de richting die ik denk/hoop dat je bedoelt.
Kies in F1 een variabele component van de tekst in B1 die als formule zal geëvalueerd worden. De "genaamde formule" doet eigenlijk net hetzelfde als de UDF die je aanhaalt.
Zoniet post zelf eens een voorbeeldbestand.
 
WHER zei:
De "genaamde formule" doet eigenlijk net hetzelfde als de UDF die je aanhaalt.

Het doet in feite inderdaad juist hetzelfde. Het enige jammere vind ik dat het nog steeds een macro-enabled workbook moet zijn, maar ik vrees dat daar gewoon geen weg omheen is.

In tegenstelling tot mijn UDF kan deze methode wel overweg met de IF-functie, en dat is wel een gigantisch voordeel. Het enige dat er nog niet mee werkt is mijn Sigma-functie (een UDF die een bewerking voor een aantal opeenvolgende getallen gaat uitvoeren en de resultaten bij elkaar optelt, zoals het wiskundige symbool). Die sigma-functie heeft wel twee tekstwaarden als argument, samen met twee numerieke waarden, dus ik vermoed dat de dubbele aanhalingstekens roet in het eten gooien...

In elk geval heel erg bedankt voor de goeie raad (met wat tweaks kreeg ik die genaamde functie nog wat flexibeler aan de praat). Ik markeer dit dan ook even als Solved voor de rest van de wijde wereld. Big thanks!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan