• ベストアンサー

エクセル(こんな関数ってありますか)

エクセルで下記のような表を作成したいと思っています。          金額    件数 (数式部分) =1,000+100 ? (セル表示)   1,100 2 数式部分(=1,000+100)は自分で入力をして、足し算をした回数=件数(上記の例で言えば”2”)として表示したいです。 質問の意味がわかりにくいかもしれませんが、わかる方がいたらよろしくお願いいたします。m(_)m

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。Wendy02です。 >金額のところが”0 ”のときでも、件数が”1 ”となってしまいます。 単に、こういうことではありませんか? =IF("=" <>LEFT(Formula,1),"",LEN(Formula)-LEN(SUBSTITUTE(Formula,"+",""))+1) つまり、そのセルが文字の左1番目が「=」があるかどうかで、数式を判定してから計算するわけです。

masio
質問者

お礼

できました(喜)Excelはいろいろできるんですね。 何度も回答をしていただき、本当にありがとうございました!!

その他の回答 (5)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.5

No.3です。補足拝見しました。 金額が0のときは0になるように手を加えました。以下のマクロと置きかえてください。 なお、置きかえたあと、Excelの画面に戻ってF9を押して再計算をしてください。 Function CountSum(Target As Range) As Integer   If Target.Value = 0 Then     CountSum = 0   Else     CountSum = Len(Target.Formula) - (Len(Replace(Target.Formula, "+", ""))) + 1   End If End Function

masio
質問者

お礼

できました(喜)Excelはいろいろできるんですね。 何度も回答をしていただき、本当にありがとうございました!!

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 最初に、数式が、A1 にあるとしたら、マウスでセルポインタをB1に合わせておいて、  挿入→名前→定義で、  仮に、Formula とでもします。 参照範囲  =GET.CELL(6,!A1)&T(NOW()) 入れて、「OK」 後は、B1 に以下の数式を入れます。 =LEN(Formula)-LEN(SUBSTITUTE(Formula,"+",""))+1 演算子が、混在の場合は、ユーザー定義関数のほうが楽です。 なお、数式は、別のシートにはコピーはしないようにしてください。新たに、名前-定義を繰り返したほうが良いです。

masio
質問者

補足

やってみたら、できました(喜) でも、あとひとつだけ・・・。 金額のところが”0 ”のときでも、件数が”1 ”となってしまいます。 金額を入れないときは件数を”0 ”にしたいのですが、可能でしょうか? その部分だけ数式を入れないのが一番簡単なのかもしれませんが・・・。 ham_kamoさんにも重ねて質問させていただいてます。 よろしくお願いいたしますm(_)m

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.2です。 マクロは貼り付けたらそのウィンドウは閉じてかまいません。Excelの画面に戻って、セルに数式を入れればOKです。 ただし、設定によっては、そのファイルを保存した後、開くときに警告が出てきて「マクロを無効にする」「マクロを有効にする」というボタンが出てくるかもしれません。その時は「マクロを有効にする」を押してください。

masio
質問者

補足

やってみたら、できました(喜) でも、あとひとつだけ・・・。 金額のところが”0 ”のときでも、件数が”1 ”となってしまいます。 金額を入れないときは件数を”0 ”にしたいのですが、可能でしょうか? その部分だけ数式を入れないのが一番簡単なのかもしれませんが・・・。 Wendy02さんにも重ねて質問させていただいてます。 よろしくお願いいたしますm(_)m

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

ユーザ定義関数を作ってみました。足し算限定ですが。 Alt+F11でVBAの画面を起動し、「挿入」>「標準モジュール」を選択して、以下のマクロを右の画面に貼り付けてください。 Function CountSum(Target As Range) As Integer   CountSum = Len(Target.Formula) - (Len(Replace(Target.Formula, "+", ""))) + 1 End Function これで、A1に数式が入っている場合、 =CountSum(A1) で足し算をした回数が表示されます。

masio
質問者

補足

「標準モジュール」で「Book1 -Module2」(コード)というウィンドウが開きました。貼り付けた後、具体的にどうすればいいのでしょうか? この作業ははじめてでまったくわかりません。右上の×でウィンドウを消してしまうのでしょうか?

回答No.1

マクロがわからないので、関数でなおかつ私が知っている範囲での 答えになるのですが      A    B    1 1000 100 (手入力)  2 =A1+B1 =COUNT(A1:B1)  3 =A2&B2 で、A3にやっと 11002 という答えが出てくるのですが これではどうでしょう? 手入力する数が未定であれば A1は =SUM(1:1)、B2のセルに=COUNT(2:2)でも 計算できます いいと思うのですが

masio
質問者

お礼

質問の書き方がちょっと悪かったですかねー。 ham_kamoさんやWendy02さんのやり方でできました。 回答どうもありがとうございました。