プロが教えるわが家の防犯対策術!

Excelで加算数値の個数を返してくれる関数、または方法がありますか。

たとえば B1セルに =7+6+4 と入っていたら3つの数値を足し算しています
のでB2セルに3がはいってほしいのです。もちろんB1セルには17が表示されます。
同様に B1セルに =5+5+5+5+9 と入っていたらB1セルには29、B2セルに5が入る
ように、ということです。

よろしくお願いいたします。

A 回答 (3件)

こんにちは。



Verion4 マクロ関数を使います。

メニュー-[挿入]-[名前]-[定義]

名前(W)
「SIKI」

参照範囲(R)
=GET.CELL(6,!A1)&LEFT(NOW(),0)

とします。A1 の行の部分は、相対参照にします。

B列の同じ行に、
=LEN(SIKI)-LEN(SUBSTITUTE(SIKI,"+",""))+1

注意:なお、この式は、同じブック内でしか使用できません。

とすればよいと思います。(こういうやり方は、ブラックボックス形式だから、気に入らないという人には、以下を使ってください。なお、Excel2003では、多少問題があるそうですが、標準アドインが、未だ、Ver.4 マクロを使用しています。)

ユーザー定義関数にするなら、そのまま扱えばよいと思います。

'標準モジュール

Function FCOUNTIF(範囲 As Range, 要素 As String) As Integer
If 範囲.HasFormula Then
 FCOUNTIF = Len(範囲.Formula) - Len(Replace(範囲.Formula, 要素, ""))
End If
End Function

ワークシート

=FCOUNTIF(A1,"+")+1

ただし、これは、+,-,×・÷など複数あるものでは出来ません。
その場合、別のコードに替わります。(用意はしていますが、今回は、加算が目的ということですから、それは置いておきます)
    • good
    • 0
この回答へのお礼

お礼、遅れて申し訳ありません。
私の質問へご回答頂いたのは初めてかと思いますが、Wendy02さんのご回答は、いつも勉強になっております。
今回も大変参考になりました。
ありがとうございます。

お礼日時:2006/11/25 10:33

ワークシート関数で数式の文字列が取得できたかどうか検索しているうちに、No.1さんが回答されたので、No.1さんの関数、お借りします。



Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を開いて、No.1さんのFunctionをコピー。

Excelの画面に戻り、B2に
=LEN(FO(B1))-LEN(SUBSTITUTE(FO(B1),"+",""))+1
と入力。
    • good
    • 0
この回答へのお礼

お礼、遅れて申し訳ありません。
大変参考になりました。
ありがとうございます。

お礼日時:2006/11/25 10:32

数式から「+」の数を数えて、1加算すれば求まりそうですが、ワークシート関数で数式を取得できたかどうか失念。



標準モジュールに、
Function Fo(rng as Range) as String
Fo = rng.Formula
End Function
とか追加しとけば、なんとか。
    • good
    • 0
この回答へのお礼

お礼、遅れて申し訳ありません。
範囲.Formulaで式の内容を得られるんですね。
大変参考になりました。
ありがとうございます。

お礼日時:2006/11/25 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!