【Excel】ボタン登録できる数式とは?
- Excel2003を使用している場合、特定の数式をボタンに登録して、必要な時にボタンを押すことで数式を簡単に呼び出してセルに入力することができます。
- これにより、数値を直接上書きすることも少なくなり、シートもスッキリすることができます。
- マクロを使用することで、参考のコードを記載することも可能です。
- ベストアンサー
【Excel】数式をボタン登録できますか?
Excel2003を使用しています。 ある数式をボタンに登録して、必要なときにだけボタンを押すことで登録した数式を呼び出して、セルに入力することはできるでしょうか? 現在はH列とI列に下記の数式を入力しているのですが、H列、I列に直接数値を上書きすることも少なくないので、必要なときにだけボタンを押して下記の数式を入力できたら、このシート自体もスッキリするのではないかと思い、質問させていただきました。 H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")] I列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",I$8:I8),"")] マクロを使用することで可能であれば、参考までにコードを記載していただけると助かります。 よろしくお願いします。
- rx-z5815
- お礼率86% (485/559)
- オフィス系ソフト
- 回答数4
- ありがとう数2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。Wendy02です。 数式で、意味が分かりました。ActiveCellということで、意味が理解できませんでした。 [=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")] >「E8以下のE列に『累 計』と入力されたら、 > E8以下のE列に『月 計』と入力されている行の > H列の数値を合計する」 これは、H8 か、I8 以降に対して、この式が成立するのですね。それも、これは、H8 か、I8 を基点としたもので、それが変化するわけです。A1 方式ですと、ものすごく分かりにくいです。確かに、『累 計』と入力されたら、累計を出すのですが、基本的には、データの末尾に出てくるものですね。これは、やったことがないと、意外に難しいです。 そうすると、ActiveCellとは言っても、限定されますから、これは、コマンドボタンではなくて、ダブルクリック・イベントでも良いような気がします。(ActiveCell は、Target になります) それで、たぶん、私の書いたマクロは理解しがたいかもしれませんが、まず、一度、試してみて、ワークシートの、数式の変化を確認してみてください。セルによって変化します。 以前、似たようなものは作ったことがあります。 If 構文の中身は、余計なおせっかいかもしれませんので、邪魔なものは取り去ってください。 With ActiveCell If (.Column = 8 Or .Column = 9) And .Row >= 8 And IsEmpty(.Value) Then .FormulaR1C1 = "=IF(RC5=""累 計"",SUMIF(R8C5:RC5,""月 計"",R8C:RC),"""")" Else MsgBox "入力位置は、H列か、I列の8行目以降の空のセルです", vbInformation End If End With
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >アクティブセルに応じて計算した結果を表示させることはできるのでしょうか? >説明不足だったようで申し訳ありませんが、よろしくお願いします。 もともと、行や列の一部が相対参照式になっているのですから、今のご質問だけでは、アクティブセルにマクロで数式を貼り付けられるはずがないと思います。 この数式は、どこのセルに対して、このような数式になったのか分からないと、対応できません。 H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")]
補足
こんばんは。 >この数式は、どこのセルに対して、このような数式になったのか分からないと、対応できません。 H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")] H列には、「E8以下のE列に『累 計』と入力されたら、E8以下のE列に『月 計』と入力されている行のH列の数値を合計する」という数式を入力しました。別の列に数式をコピペしてもエラーが出ないように行や列の一部を相対参照や絶対参照にしています。 (別件で質問させていただいた際、このようなアドバイスを受けましたので…)
- hana-hana3
- ベストアンサー率31% (4940/15541)
式を入れるだけなら下記にようになります。 ActiveCell.Formula = "=IF($E8=""累 計"",SUMIF($E$8:$E8,""月 計"",I$8:I8),"""")"
補足
回答ありがとうございます。 アクティブセルに応じて計算した結果を表示させることはできるのでしょうか? 説明不足だったようで申し訳ありませんが、よろしくお願いします。
- toshi_2000
- ベストアンサー率30% (306/1002)
H列の式を入力するマクロは次の通りです。 ActiveCell.Formula = "=IF($E8=""累 計"",SUMIF($E$8:$E8,""月 計"",H$8:H8),"""")"
補足
回答ありがとうございます。 アクティブセルに応じて計算した結果を表示させることはできるのでしょうか? 説明不足だったようで申し訳ありませんが、よろしくお願いします。
関連するQ&A
- 【Excel】関数でできますか?
Excel2003を使用しています。 E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高 1行 あ 100 2行 い 100 3行 う 500 4行 5行 月 計 600 100 500 6行 7行 8行 か 300 9行 き 400 10行 く 500 12行 月 計 900 300 1100 13行 累 計 1500 400 : : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]-[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- 【Excel】数式のコピー
Excel2003を使用しています。 他人が作成した表の行数を増やして、数式もコピーしたいのですが、その数式は別シートを参照していて、行・列が連続していないので、単純にコピー → 貼り付けでは、正しい数式を貼り付けることができません。 現在は、とりあえず、コピー&貼り付けした後に、数式を修正しているのですが、規則性があるので、手作業で数式を修正する以外に何か良い方法はないでしょうか? Sheet1…参照するシート Sheet2…数式が入力されているシート Sheet2に入力されている数式は C7 = Sheet1!B7 D7 = Sheet1!C7 E7 = Sheet1!D7 F7 = Sheet1!E7 G7 = Sheet1!F7 H7 = Sheet1!G7 I7 = Sheet1!B8 J7 = Sheet1!C8 K7 = Sheet1!D8 : : C16 = Sheet1!B25 D16 = Sheet1!C25 E16 = Sheet1!D25 F16 = Sheet1!E25 G16 = Sheet1!F25 H16 = Sheet1!G25 I16 = Sheet1!B26 J16 = Sheet1!C26 K16 = Sheet1!D26 以上が1ページ分で、C列~H列、I列~K列はそれぞれ参照する行が1行おきになっています。 Sheet1の1ページは26行ありますので、2ページ目のSheet2の数式は C17 = Sheet1!B33 から始まり D17 = Sheet1!C33 : : H17 = Sheet1!G33 I17 = Sheet1!B34 J17 = Sheet1!C34 K17 = Sheet1!D34 : : K26 = Sheet1!D52 までが、2ページ目となり、これが下方向へ続いています。 これらの数式を変更することなどで、コピー&貼り付けができないかと思い、質問させていただきました。 説明がわかりづらくて、申し訳ありませんが、よろしくお願いします。
- 締切済み
- オフィス系ソフト
- 【Excel】関数でできますか?(訂正版)
Excel2003を使用しています。 E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高 1行 あ 100 2行 い 100 3行 う 500 4行 5行 月 計 600 100 500 6行 7行 8行 か 300 9行 き 400 10行 く 500 11行 12行 月 計 900 300 1100 13行 累 計 1500 400 : : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]+[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- 【Excel VBA】データを集計する数式を入力するマクロ
Excel2003を使用しています。 A列 B列 C列 D列 E列 F列 1 9/1 20000 2 9/2 1000 3 9/10 5000 : : 10 9月計 ※1 ※2 11 12 13 10/1 10000 14 10/10 2000 15 10/14 4000 : : 20 10月計 ※3 ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel】直前のある特定の文字を拾って計算したい
Excel2003を使用しています。 E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高 1行 あ 100 2行 い 100 3行 う 500 4行 5行 月 計 600 100 500 6行 7行 8行 か 300 9行 き 400 10行 く 500 11行 12行 月 計 900 300 1100 13行 累 計 1500 400 : : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]+[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 関数でもマクロでも構いません。マクロでしたら、初心者ですので 参考までに一例を示していただけると嬉しいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelの数式について教えてください。
=IF(AND($A7="",$I7="",),"",IF($X7=$AA$13,IF(AND(NOT($A7=""),NOT($I7="")),$H7+$P7,IF($X7=$AA$13,IF(NOT($A7=""),$H7,IF($X7=$AA$13,IF(NOT($I7=""),$P7))))))) 何とか上記の数式を作ったのですが、 (X列、AA列は色々な店名が入力されています。)X列の店名が、AA列の店名に合致すると、正常に計算されますが、合致しないと"FALSE"が表示されます。 合致しない場合は、"FALSE"でなくセルを空白表示にしたいのでが、数式を教えてください。 Excel2003 セルの書式設定:X列、AA列は標準、他の列は数値です。この式はQ列に入力されています。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- 【Excel】正しい計算結果が得られない
Excel2003を使用しています。 B列は日付、C列は摘要欄、E列・F列は金額データが入力されています。 C列に『n月計』と入力された行のE列・F列に下記の数式(E269セル、F269セルの場合を記載)をマクロボタンをクリックすることにより、入力できるようになっています。 E列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(E$4:E268)) F列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(F$4:F268)) 4月計~12月計までは、問題なく上記の数式で集計できていたのですが、1月計を同様の操作で数式を入力したところ、正しい集計結果を得ることができません。 以前は、単純にSUM関数を使用して、その月のデータを都度、手作業で範囲選択していましたが、同様のシートが40枚ほどあるため、マクロボタンをクリックすることで、集計の数式が入力できればと思い、作成したのですが…。 どういった原因が考えられますでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数で列を挿入し同時に数式の列もずらしたい
数式で =IF(COUNTIF(E1:H1,1)=0,1,IF(MATCH(1,E1:H1,1)=1,1,"")) をJ1に設定してます。 その後 J列に列挿入すると K1に=IF(COUNTIF(E1:H1,1)=0,1,IF(MATCH(1,E1:H1,1)=1,1,"")) がコピーされますが (E1:H1)を列挿入することで(F1:I1)にすることは可能でしょうか 列を増やすことが多々あるため挿入する列数の応じた ずれ方をしていきたいです。 何分に勉強不足のためご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel数式について
Excel数式について Excel2003を使用しております。 sheet1からsheet4のA列からC列に1~100までの数字を入力しております。 sheet5のA1~A100にそれぞれの数字をカウントしたものを返したいのですが、 適した数式をご教示いただきたくよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excel数式について
Excel数式について Excel2010を使用しております。 sheet1からsheet10のA列からC列に1~400までの数字(コード)をランダムに入力しております。 中には欠番もあるので、入力される数字(コード)は全部で「97」になります。 sheet11のA1~A97にそれぞれの数字(コード)をカウントしたものを返したいのですが、 適した数式をご教示いただきたくよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
お礼
こんにちは。 数式をR1C1方式にすることによって、同じ内容の数式でもA1方式と比べるとずいぶん分かりやすくなりますね。この方法で他の数式でも同様のマクロを作ってみたところ、うまくいきました。 >コマンドボタンではなくて、ダブルクリック・イベントでも良いような気がします。(ActiveCell は、Target になります) とアドバイスをいただきましたので、練習がてら試してみたところ、これもうまくいきました。 おかげさまで、シート自体も必要な箇所にだけ数式が入力されていて、スッキリしました。シート数が多いブックで、同様のブックが10個ほどありますので、容量も若干スッキリしたようです。 今回も最後までお付き合いくださり、ありがとうございました<(_ _)>