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

Opgelost Tekst als formule uitvoeren

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Visara

Gebruiker
Lid geworden
10 mrt 2019
Berichten
225
Goedemiddag,
Kan en wil iemand mij helpen? Zou ik zeer waarderen.

De vraag in het kort:

Hoe zorg ik dat Excel een tekstwaarde als formule uitvoert? Excel 2019.

De vraag uitgebreid:
Ik heb een tabel, deze wordt gevoed door [Gegevens ophalen -> uit een map].
1717343721794.png

Ik wil een kolom hebben die de Minimum-waarde van een rij geeft.
Simpel: =MIN([@Duitsland];[@België];[@Nederland])

Echter, ik wil dat de gebruiker in een dashboard kan selecteren wélke kolommen worden meegenomen in de berekening. Bijv alleen Duitsland & België

1717344387344.png
1717345910055.png

Kolom J is een hulpkolom, het bevat velden waarin de invoer in het dashboard worden omgezet in een vorm waar de formule iets mee kan:
=CONCAT("=MIN(";TEXTJOIN(";";;$J$2;$J$3;$J$4)&")")
1717345982000.png
Resultaat ziet er prima uit. Maar: hoe krijg ik Excel zo ver dat het deze formule ook echt uitvoert?

Attempt 1:
Ik dacht met INDIRECT, maar dat werkt niet:
1717346205601-png.378261


Attempt 2, Custom function:
Code:
Function TextToFormula(Cellvalue As Range)
TextToFormula = Evaluate(Cellvalue.Value)
End Function
1717346427832.png

In de bijlage het voorbeeldbestand.
Met vriendelijke groet,
Visara
 

Bijlagen

  • Vraag Visara Tekst als formule.zip
    Vraag Visara Tekst als formule.zip
    14,9 KB · Weergaven: 8
  • 1717346417258.png
    1717346417258.png
    6,1 KB · Weergaven: 1
  • 1717346374555.png
    1717346374555.png
    7,8 KB · Weergaven: 2
  • 1717346205601.png
    1717346205601.png
    10,8 KB · Weergaven: 116
Bedankt voor je moeite. Ik wist niet dat dit op deze manier mogelijk was.
Maar: de gebruiker moet de vrijheid hebben om veld I4 leeg te laten. Jouw formule eist echter dat alle drie kolommen worden meegewogen in de MIN-functie. In dit voorbeeld laat ik het groene veld I4 leeg: #N/A als gevolg.
Dat had ik misschien explicieter moeten melden in mijn vraag, sorry.
1717351145991.png

Ik zou je formule kunnen uitbouwen, waarin de formule telt hoeveel gegevens er in I2:I4 staan.
=IF(COUNTA(I2:I4)=3;MIN(INDEX(A2:C2;1;MATCH($I$2;Table1[#Headers];0));INDEX(A2:C2;1;MATCH($I$3;Table1[#Headers];0));INDEX(A2:C2;1;MATCH($I$4;Table1[#Headers];0))); IF(COUNTA(I2:I4)=2 ….. Etc

Het aantal landen(kolommen) is in dit voorbeeld maximaal 3. In het echt kunnen het er zo'n 10 zijn. Zou een draak van een formule worden.... IF(COUNTA(I2:I4)=10; (laaaange code); IF(COUNTA(I2:I4)=9;....

Aan elk onderdeel van de =MIN( ; ; ) formule een IFERROR deel toevoegen klinkt als een oplossing, maar lukt me niet werkend te krijgen. Als de IFERROR af moet gaan, dan moet het BLANC/EMPTY returnen, maar dat kan niet(?)
=MIN(5;6;"") geeft error. =MIN(5;6;0) geeft '0' als minwaarde... :(
Ik heb hier alleen een IFERROR aan het eerste deel toegevoegd:
=MIN(IFERROR(INDEX(A2:C2;1;MATCH($I$2;Table1[#Headers];0));0); INDEX(A2:C2;1;MATCH($I$3;Table1[#Headers];0)); INDEX(A2:C2;1;MATCH($I$4;Table1[#Headers];0)))
 
Laatst bewerkt:
Ik heb je reeds bestaande hulpblad gebruikt om het e.e.a. wat simpel(er) te houden. Is ook gemakkelijk uit te breiden met meer landen. Bekijk maar eens of je er iets mee kunt.
 

Bijlagen

Hi Alex, ook jij bedankt voor je hulp!
Waarden vervangen voor FALSE is ook een idee. Ik kan het nu sowieso werkend krijgen, maar de oplossing voelt als omslachtig. Ik dupliceer de data, als ik jouw oplossing gebruik.

Eigenlijk is het heel suf: ik heb een formule die een stuk tekst produceert. Als Excel dat stuk tekst oppakt als formule en echt uitvoert, dan zou ik al klaar zijn.
 
Laatst bewerkt:
Ik heb geprobeerd het in één formule te zetten zonder hulptabel. Probleem is dan dat de ONWAAR/FALSE als 0 gezien wordt en je elke keer 0 als minimum krijgt. Vandaar de oplossing met een hulptabel. De waarde ONWAAR wordt dan niet als 0 gezien.
 
Dat is een mooie, AHulpje! Ik geloof dat ik genoeg kan volgen van de vba-code om het om te kunnen bouwen in de situatie van de echte file.
Hartelijk dank allen!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan