[[20100304132347]] 『【至急!!】累乗計算』(みい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『【至急!!】累乗計算』(みい)

 助けて下さい!
 下記Ⓐの式をexcelで入力するにはどうしたら良いでしょうか?

 Ⓐ0.04×(1+0.04)^30/(1+0.04)^30-1

  =0.0578・・・答え

  セルに「0.0578」と答えが入るようにⒶを入力したいです。
 自分なりに調べたら「power関数」を使うようですが・・
 これ以上分かりません。
  excelかなり初心者です・・アホな質問をしているとは思いますが
 宜しくお願いします。
 

 括弧が抜けているのかな
 =0.04*(1+0.04)^30/((1+0.04)^30-1)

 衝突したけど名前も書かない人は無視して。

  そもそも答えを「0.0578」とするのには
 0.04×(1+0.04)^30/((1+0.04)^30-1)
 にしないとだめでは? 

 また、べき乗は関数だとたしかにPOWER関数ですが演算子では「^」でOKです。
 あとは乗算(×)には「*」を使って下さい。

 出来ました!
 こんなに早くお返事頂けるとは・・感動です!
 今回はPOWER関数ではなかったのですね。
 助かりました!本当にありがとうございました!!

名前も書かない人は無視して。


 解決済みですが、こんな関数もありまっせぇ。
 0.04×(1+0.04)^30/((1+0.04)^30-1)
 とか上付き文字のべき乗とか、√で書かれた式も計算されます。
 =txtcalc(A1)等と入力します。
     (弥太郎)
 '--------------
Function txtcalc(adrs As Range) As Double
    Dim data As String, d_1 As String, Cnt As Integer
    Dim i As Integer, flag As Boolean, mch, d_2 As String
    data = Replace(Replace(Replace(Replace(Replace(Replace(StrConv(adrs, vbNarrow), "÷", "/"), _
                        "×", "*"), "{", "("), "}", ")"), "[", "("), "]", ")")
    If data = "" Then txtcalc = 0: Exit Function
    With CreateObject("vbscript.regexp")
        .Global = True
        If adrs Like "*" & adrs.Font.Superscript & "*" Then
            Do While i < Len(adrs)
                i = i + 1
                If adrs.Characters(i, 1).Font.Superscript Then
                    d_1 = d_1 & "^"
                    If adrs.Characters(i + 1, 1).Font.Superscript Then flag = True
                End If
                If flag Then
                    d_1 = d_1 & Mid$(data, i, 2)
                    i = i + 1
                    flag = False
                Else
                    d_1 = d_1 & Mid$(data, i, 1)
                End If
            Loop
            data = d_1
            d_1 = ""
        End If
        data = Replace(data, "√", "Sqr")
        .Pattern = "\d+\("
        If .test(data) Then data = Replace(data, "(", "*(")
        .Pattern = "\)\d"
        If .test(data) Then data = Replace(data, ")", ")*")

        .Pattern = "\)\("
        If .test(data) Then data = Replace(data, ")(", ")*(")
        .Pattern = "(\+|\-|\/)(\*)"
        If .test(data) Then data = .Replace(data, "$1")
        .Pattern = "(\*)(\+|\-|\/|\))"
        If .test(data) Then data = .Replace(data, "$2")
        If data Like "*Sqr*" Then
            .Pattern = "(\d+|\))Sqr"
            If .test(data) Then
                For Each mch In .Execute(data)
                    data = Replace(data, mch, Split(mch, "S")(0) & "*" & "Sqr")
                Next
            End If
            .Pattern = "Sqr\d+"
            If .test(data) Then
                For Each mch In .Execute(data)
                    data = Replace(data, mch, Sqr(Split(mch, "r")(1)))
                Next
             End If
            .Pattern = "Sqr\("
            If .test(data) Then
                d_2 = data
                For Each mch In .Execute(data)
                    Cnt = 1
                    For i = mch.firstindex + 5 To Len(d_2)
                        If Mid(d_2, i, 1) = "(" Then
                            Cnt = Cnt + 1
                        ElseIf Mid(d_2, i, 1) = ")" Then
                            Cnt = Cnt - 1
                            If Cnt = 0 Then Exit For
                        End If
                            d_1 = d_1 & Mid(d_2, i, 1)
                    Next i
                data = Replace(data, "Sqr(" & d_1 & ")", Sqr(Evaluate(d_1)))
                d_1 = ""
                Next
            End If
        End If
        .Pattern = "\D"
        If .test(data) Then
            For Each mch In .Execute(data)
                .Pattern = "(\*|\/|\+|-|\)|\(|\.|\^|%)"
                If Not .test(mch) Then
                    data = Replace(data, mch, "")
                End If
            Next mch
            .Pattern = "^\*|\*$"
            If .test(data) Then data = .Replace(data, "")
            txtcalc = Evaluate(data)
        Else
            txtcalc = data
        End If
    End With
 End Function

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.