- ベストアンサー
エクセル(こんな関数ってありますか)
エクセルで下記のような表を作成したいと思っています。 金額 件数 (数式部分) =1,000+100 ? (セル表示) 1,100 2 数式部分(=1,000+100)は自分で入力をして、足し算をした回数=件数(上記の例で言えば”2”)として表示したいです。 質問の意味がわかりにくいかもしれませんが、わかる方がいたらよろしくお願いいたします。m(_)m
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。Wendy02です。 >金額のところが”0 ”のときでも、件数が”1 ”となってしまいます。 単に、こういうことではありませんか? =IF("=" <>LEFT(Formula,1),"",LEN(Formula)-LEN(SUBSTITUTE(Formula,"+",""))+1) つまり、そのセルが文字の左1番目が「=」があるかどうかで、数式を判定してから計算するわけです。
その他の回答 (5)
- ham_kamo
- ベストアンサー率55% (659/1197)
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
お礼
できました(喜)Excelはいろいろできるんですね。 何度も回答をしていただき、本当にありがとうございました!!
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 最初に、数式が、A1 にあるとしたら、マウスでセルポインタをB1に合わせておいて、 挿入→名前→定義で、 仮に、Formula とでもします。 参照範囲 =GET.CELL(6,!A1)&T(NOW()) 入れて、「OK」 後は、B1 に以下の数式を入れます。 =LEN(Formula)-LEN(SUBSTITUTE(Formula,"+",""))+1 演算子が、混在の場合は、ユーザー定義関数のほうが楽です。 なお、数式は、別のシートにはコピーはしないようにしてください。新たに、名前-定義を繰り返したほうが良いです。
補足
やってみたら、できました(喜) でも、あとひとつだけ・・・。 金額のところが”0 ”のときでも、件数が”1 ”となってしまいます。 金額を入れないときは件数を”0 ”にしたいのですが、可能でしょうか? その部分だけ数式を入れないのが一番簡単なのかもしれませんが・・・。 ham_kamoさんにも重ねて質問させていただいてます。 よろしくお願いいたしますm(_)m
- ham_kamo
- ベストアンサー率55% (659/1197)
No.2です。 マクロは貼り付けたらそのウィンドウは閉じてかまいません。Excelの画面に戻って、セルに数式を入れればOKです。 ただし、設定によっては、そのファイルを保存した後、開くときに警告が出てきて「マクロを無効にする」「マクロを有効にする」というボタンが出てくるかもしれません。その時は「マクロを有効にする」を押してください。
補足
やってみたら、できました(喜) でも、あとひとつだけ・・・。 金額のところが”0 ”のときでも、件数が”1 ”となってしまいます。 金額を入れないときは件数を”0 ”にしたいのですが、可能でしょうか? その部分だけ数式を入れないのが一番簡単なのかもしれませんが・・・。 Wendy02さんにも重ねて質問させていただいてます。 よろしくお願いいたしますm(_)m
- ham_kamo
- ベストアンサー率55% (659/1197)
ユーザ定義関数を作ってみました。足し算限定ですが。 Alt+F11でVBAの画面を起動し、「挿入」>「標準モジュール」を選択して、以下のマクロを右の画面に貼り付けてください。 Function CountSum(Target As Range) As Integer CountSum = Len(Target.Formula) - (Len(Replace(Target.Formula, "+", ""))) + 1 End Function これで、A1に数式が入っている場合、 =CountSum(A1) で足し算をした回数が表示されます。
補足
「標準モジュール」で「Book1 -Module2」(コード)というウィンドウが開きました。貼り付けた後、具体的にどうすればいいのでしょうか? この作業ははじめてでまったくわかりません。右上の×でウィンドウを消してしまうのでしょうか?
- yukinojyou7
- ベストアンサー率28% (87/304)
マクロがわからないので、関数でなおかつ私が知っている範囲での 答えになるのですが A B 1 1000 100 (手入力) 2 =A1+B1 =COUNT(A1:B1) 3 =A2&B2 で、A3にやっと 11002 という答えが出てくるのですが これではどうでしょう? 手入力する数が未定であれば A1は =SUM(1:1)、B2のセルに=COUNT(2:2)でも 計算できます いいと思うのですが
お礼
質問の書き方がちょっと悪かったですかねー。 ham_kamoさんやWendy02さんのやり方でできました。 回答どうもありがとうございました。
お礼
できました(喜)Excelはいろいろできるんですね。 何度も回答をしていただき、本当にありがとうございました!!