は、より良い方法があるかもしれませんが、私は、これはあなたのために働くだろうと信じて:
Function pos(rTest As Range) As String
Dim a() As String
Dim i As Integer
Dim iVal As Double
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
a = Split(rTest, ",")
Dim iStart As Integer
Dim iEnd As Integer
For i = LBound(a) To UBound(a)
iStart = wf.Find("=", a(i)) + 1
iEnd = InStr(wf.Find("=", a(i)) + 1, a(i), " ")
iVal = iVal + CDbl(Mid(a(i), iStart, iEnd - iStart))
Next
pos = "pos=" & CStr(iVal)
End Function
Function neg(rTest As Range) As String
Dim a() As String
Dim i As Integer
Dim iVal As Double
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
a = Split(rTest, ",")
Dim iStart As Integer
Dim iEnd As Integer
For i = LBound(a) To UBound(a)
iStart = InStrRev(a(i), "=") + 1
iEnd = Len(a(i)) + 1
iVal = iVal + CDbl(Mid(a(i), iStart, iEnd - iStart))
Next
neg = "neg=" & CStr(iVal)
End Function
が、私はまだVBAに自分自身が新しい考えます。私はそれが最適化されるか、少し強化されると確信しています。 2つの機能をVBAモジュールに入れます。その後、細胞内の定期的な式として、それに応じて=pos
か=neg
を入れて、範囲を置く。
ています'pos = 0.37 neg = 0.0、正直:pos = 0.4 neg = 0.0、pick:pos = 0.0 neg = 0.0'であり、posとnegのコンマで区切られた合計が必要です次のセルで? – Brian
@ブライアンはい。正と負の合計は、必要に応じて2つの列になります。 – user47467
私はVBAソリューションを開発することをお勧めします。 –