02. januar 2011 - 11:48Der er
12 kommentarer og 1 løsning
Excel funktion
Findes der en excel funktion der skriver værdierne der bliver brugt til at finde et resultat?
f.eks. hvis jeg har en celle der hedder B2 der giver værdien 10. Værdien 10 er fundet ved at plusse A1 som er 5 og A2 som også er 5. Så vil jeg gerne have at jeg kan lave en celle som skriver værdierne fra A1 og A2 "5 + 5".
Kan dette lade sig gøre?? Svar skal bruges hurtigt, da eksamenen er i morgen:).
Tak for svaret svla. Den metode du beskriver er den jeg bruger i forvejen. Men det jeg mente var, at cellen selv fandt ud af hvor den skulle tage værdierne fra ud fra min svarcelle. Hvis jeg selv skal finde cellerne er det i princippet lige så hurtigt at skrive værdierne ind manuelt. Selvfølgelig kan det bruges til reproduktion af skemaet.
Function ShowFormula(Cell) Application.Volatile If Cell = "" Then ShowFormula = "" ElseIf Left(Cell.FormulaLocal, 1) <> "=" Then ShowFormula = Cell Else ShowFormula = Right(Cell.FormulaLocal, Len(Cell.FormulaLocal)) End If End Function
Gå tilbage til regnearket og indstat følgende formler i tre tomme celler:
Tak for svaret Hans, men den macro løser ikke mit problem, da den netop giver returværdierne A1+A2. I stedet for A1+A2 vil jeg gerne have at den netop skriver 5+5. Jeg kan ende med at skulle bruge op til 10 forskellige tal i min formel, så det vil være lidt en ulempe at skulle skrive showformula(A1-10), og samtidigt tror jeg ikke min censor gider sætte værdierne sammen:).
Synes godt om
Slettet bruger
02. januar 2011 - 15:40#6
Nej, men søg du da bare videre!
Synes godt om
Slettet bruger
02. januar 2011 - 16:02#7
Så hvis du i A1:A10 har ti femtaller så vi du have returneret =5+5+5+5+5+5+5+5+5+5
Er det korrekt forstået?
Hvis JA, er det for at censoren kan checke om du er i stand til rigtigt at indtaste femtaller eller hur?
Umiddelbart skulle man tro ,at det ville give mere mening, at checke om du for eksempel havde indtastet en formel som for eksempel: =SUM(A1:A10)
Men det er måske noget højere matematik vi er ude i her?
Nej, det er alt sammen for at spare tid. Det min censor ønsker at finde ud af er, hvis jeg har lavet en fejl i min udregning, hvor fejlen så ligger. Han vil givetvis hellere sammenligne med hans løsning og se 5%+6% fremfor at skulle gennemgå alles cellereferencer.
Stykkerne er naturligvis simplificeret i mit spørgsmål. Et eksempel kunne være at jeg skal finde en firma værdi ud fra formlen: Free cash flow/(r_wacc - growth). Der vil jeg så gerne have min celle til at sige "77/(0,0841-0,04)".
Det er alt sammen for at spare tid. :)
Synes godt om
Slettet bruger
02. januar 2011 - 16:37#9
Hvis du i A1 har formlen: =77/(0,0841-0,04) så får du returværdien 1746, 032.
Hvis du i B1 indtaster =ShowFormula(A1) så får du returværdien: =77/(0,0841-0,04)
Nu er vi på vej derhen af. Problemet er så, at jeg jo i mine celler bruger referencer fra andre. Så i stedet for 77/(0,0841-0,04) vil have B1/(B2-B3). Er der en måde hvorpå dette kan konverteres, eller vil løsningen på mit problem blive, at jeg skal indtaste manuelle værdier i stedet for at klikke på celler?
Function FnK(rngF As Range) As String Dim vRefs As Variant, lngRef As Long FnK = "'" & rngF.Formula vRefs = Split(PatternExtract(FnK, "[A-Z]{1,2}[0-9]+", , -1)) For lngRef = LBound(vRefs) To UBound(vRefs) Step 1 FnK = Replace(FnK, vRefs(lngRef), Round(Evaluate(vRefs(lngRef)),3), 1, -1, vbTextCompare) Next lngRef End Function
'RegExp Function Function PatternExtract(strF As String, strPattern As String, _ Optional boolIgnoreCase As Boolean = True, Optional lngInstance As Long = 1) As Variant Dim RegExp As Object, RegExpMatch As Object On Error Resume Next Set RegExp = CreateObject("vbscript.regexp") With RegExp .Global = True .IgnoreCase = boolIgnoreCase .Pattern = strPattern End With Set RegExpMatch = RegExp.Execute(strF) If lngInstance > RegExpMatch.Count Then PatternExtract = "" Else If lngInstance = -1 Then For lngInstance = 1 To RegExpMatch.Count Step 1 PatternExtract = PatternExtract & " " & RegExpMatch(lngInstance - 1) Next lngInstance PatternExtract = Replace(PatternExtract, " ", "", 1, 1) Else PatternExtract = RegExpMatch(lngInstance - 1) End If End If Set RegExpMatch = Nothing Set RegExp = Nothing End Function
er hvad endte med at løse mit problem
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.