Excel formule waarde weergeven in plaats van cell referentie

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • iceblack24
  • Registratie: September 2009
  • Laatst online: 23:16
Mijn vraag:
Is het in excel mogelijk om een formule te exporteren/kopieeren met inplaats van de cell referenties (A1+A2) de daadwerkelijke getallen van de cellen in de formule.

voorbeeld:
=SQRT((Q3*(1-Q3))/Q4)
Zo is het nu, maar ik zou graag de cell referenties vervangen zien worden door de daadwerkelijke getallen van de cellen welke gebruikt worden in de formule.
Nu moet ik dit steeds handmatig uittypen wat erg veel tijd kost.

Ik wil de formule graag in word plakken met daarin de cijfers dus bijvoorbeeld:
=SQRT((10*(1-10))/5)

Relevante software en hardware die ik gebruik:
Office 365 op een mac

Wat ik al gevonden of geprobeerd heb:
Mijn google zoektocht eindigt steeds op websites die verwijzen naar manieren waarop je de formules kunt weergeven in excel. Ik kan echter niks vinden over een manier waarop je het cell referentie nummer kan vervangen door de daadwerkelijke waarde van die cell.

Mijn dank zou eindeloos groot zijn!

Iemand enig idee?

[ Voor 5% gewijzigd door iceblack24 op 01-01-2018 21:07 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Ik weet dat de Mac-versies soms nogal eigenwijs zijn, maar op Windows moet je deze optie hebben:
De plakoptie heet 'Waardes'

https://i.imgur.com/jeIKey4.png

Overigens, ik weet niet hoe het met jouw Google-fu-skills zit, maar: [google=excel mac paste values only] lijkt me redelijk to-the-point :)

[ Voor 31% gewijzigd door Room42 op 01-01-2018 21:11 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • iceblack24
  • Registratie: September 2009
  • Laatst online: 23:16
[quote]Room42 schreef op maandag 1 januari 2018 @ 21:04:
Ik weet dat de Mac-versies soms nogal eigenwijs zijn, maar op Windows moet je deze optie hebben:
De plakoptie heet 'Waardes'

[afbeelding]

Ik heb mijn vraag even wat verder verduidelijkt. Het gaat dus niet om de uitkomst die ik graag wil kunnen kopieeren maar ik wil graag de formule kopieeren. Nu staan er alleen cellwaardes in inplaats van cijfers. Als je dus niet weet over welke cellen met welke bijbehorden getallen het gaat zegt de formule je niet zo veel.

Hopelijk is het nu duidelijk wat ik bedoel.

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Ah, zo bedoel je. Ik weet niet hoe vaak je dit nodig hebt, maar dan zou ik hiervoor een los 'blad' maken met daarin een formule die dat als 'waarde' genereert. Bijvoorbeeld: Voor de formule: "=B1+C1" op cel A1 maak je dan in die speciale cel:

Visual Basic:
1
="=" & B1 & "+" & C1


Afbeeldingslocatie: https://i.imgur.com/ruZ04zr.png

Zoals je ziet zijn "=" en "+" dan letterlijke strings. In jouw voorbeeld wordt dat dus:
Visual Basic:
1
="=SQRT((" & Q3 & "*(1-" & Q3 & "))/" & Q4 & ")"


edit:
Of je moet er een macro voor schrijven. ;)

[ Voor 23% gewijzigd door Room42 op 01-01-2018 21:23 . Reden: Ik heb de code-blokken maar even Visual Basic meegegeven voor de kleurtjes. ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 23:01
Dit werkt (denk ik?) niet op een mac, omdat daar geen vba bij zit (denk ik?).
Op een windows-machine werkt onderstaande iig vlekkeloos.

https://superuser.com/que...es-without-f9-using-macro

Net getest (windows), en werkt prima!

Wel eerst nagaan of je de code begrijpt. Klakkeloos overnemen is (vaak) vragen om problemen!

Dit is dus niet mijn eigen code; alle credits gaan naar natancodes (zie bovenstaande link)
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Option Explicit


Sub Test()
    Call ReplaceReferencesWithValues(Selection)
End Sub


Sub ReplaceReferencesWithValues(rng As Range)
    Dim cl As Range
    Dim ws As Worksheet
    Dim strTemp As String
    Dim strRef() As String
    Dim intIndex As Integer

    For Each cl In rng
        Set ws = cl.Worksheet
        strTemp = cl.Formula
        strRef() = ReferenceArray(cl)

        For intIndex = LBound(strRef) To UBound(strRef)
            strTemp = Replace(strTemp, strRef(intIndex), _
                ws.Range(strRef(intIndex)).Value)
        Next

        cl.Formula = strTemp
    Next
End Sub


Function ReferenceArray(rngSource As Range) As Variant
    Dim rngRef As Range
    Dim strTemp As String
    On Error Resume Next

    For Each rngRef In rngSource.Precedents.Cells
        strTemp = strTemp & ", " & rngRef.Address(False, False)
    Next
    If Len(strTemp) > 0 Then strTemp = Mid(strTemp, 3)

    ReferenceArray = Split(strTemp, ", ")
End Function

[ Voor 7% gewijzigd door breew op 02-01-2018 14:10 . Reden: bron toegevoegd ]


Acties:
  • 0 Henk 'm!

  • iceblack24
  • Registratie: September 2009
  • Laatst online: 23:16
phoe ik heb nog nooit iets zefl geschreven in een code.
Maar heel erg bedankt voor het mee denken!
Ik zal van het weekend eens kijken of ik het op mac ook aan de praat krijgen.

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 23:01
iceblack24 schreef op dinsdag 2 januari 2018 @ 13:59:
phoe ik heb nog nooit iets zefl geschreven in een code.
Maar heel erg bedankt voor het mee denken!
Ik zal van het weekend eens kijken of ik het op mac ook aan de praat krijgen.
Zorg dat je de code (iig globaal) snapt voordat je gaat testen... en werk (uiteraard?) altijd in een kopie van je data! Acties uitgevoerd door vba/macro kunnen niet ongedaan gemaakt worden.

Bovenstaande code overschrijft de in geselecteerde cellen met formules de celverwijzingen in die formules met de waarden uit de betreffende cellen... Die formules met celverwijzingen ben je na uitvoeren van de code dus kwijt!
NB: de celwaarde verandert niet, maar in de formulebalk staan nu niet meer =A1+B1, maar =2+3.
Pagina: 1