C列:「寸法」
D列:「数量」
F列:「単価」
G列:「金額(D列×F列)」
行2~行83まで
G84セルにG列の合計が入ります。
こういう雛形の見積明細書で例えばC6セルに「小計」と入力すると、G2セル~G5セル間での小計をG6セル表示させるようにし、G7セルからは通常通りD列×F列の結果が表示され、さらにC15セルに「小計」と入力すると、G7セル~G14セル間での小計をG15セル表示させるようにし、最終的には全ての小計の合計がG84セルに結果表示させるようなことは可能でしょうか?
マクロでないと出来ないなら、当方は知識を全く持ち合わせておりませんので、かなり困難かと思いますので、関数だけで対処できると助かります。
不足情報は補足致します。
よろしくお願い致します。
No.8
- 回答日時:
#05です。
>D2及びF2を空欄にしますと「#Value!」が出てしまいます
そうですか? 私が試してもなりません。G列の値は0になるだけです。
実際の値を見ないと何とも言えませんが、エラー値からすると「空欄」ではなく文字の「空白」を入力したのではありませんか?
式最後のD2*F2を
IF(AND(ISNUMBER(D2),ISNUMBER(F2)),D2*F2,"ERROR")
とすれば計算できない文字が入力されたときチェックはできますが、むしろ#VALUE!のままのほうがエラーがすぐに分かって良いのではないでしょうか。
この式では小計がない場合は想定していません。
マクロで良ければ前回の質問にも書いたSUBTOATAL関数を小計欄に挿入できますが、「マクロはダメ」ならどうしようもないです
>この数式、惜しいです。いい線いってます!
質問して回答してもらっている立場の方のセリフとは思えませんね
悪気はないのでしょうが、愉快ではありません
ありがとうございます。
>そうですか? 私が試してもなりません。G列の値は0になるだけ
>です。
>実際の値を見ないと何とも言えませんが、エラー値からすると
>「空欄」ではなく文字の「空白」を入力したのではありませんか?
仰せのとおりでした。
失礼致しました。
>マクロで良ければ前回の質問にも書いたSUBTOATAL関数を小計欄
>に挿入できますが、「マクロはダメ」ならどうしようもないです
マクロはゆくゆく勉強しなくてはいけない、とは思っておりますが、何分本職ではなく、片手間にやっているのでなかなか・・・。
そういう理由であれば仕方がありませんね。
この件はあきらめます。
>悪気はないのでしょうが、愉快ではありません
お気に障られたのであればお詫びいたします。
大変失礼致しました。
No.7
- 回答日時:
まず、
=IF(COUNT(F2)=0,"",IF(COUNT(D2)=1,SUM(D2*F2),F2))
↑の式は、
=IF(ISNUMBER(F2),PRODUCT(D2,F2),"")
で、良いかも。
で、本題はそれほどややこしくなく、いけそうです。
G2=IF(C2="小計",SUM($G$1:G1)-SUMIF($C$1:C1,"小計",$G$1:G1)*2,IF(ISNUMBER(F2),PRODUCT(D2,F2),""))
下へコピー。
G84=SUMIF(C2:C83,"<>小計",G2:G83)
ありがとうございます。
>=IF(COUNT(F2)=0,"",IF(COUNT(D2)=1,SUM(D2*F2),F2))
>↑の式は、
>=IF(ISNUMBER(F2),PRODUCT(D2,F2),"")
>で、良いかも。
なにしろIFかSUMしか知らないもので・・・。
勉強になりました。
No.6
- 回答日時:
#1です。
ご指摘のとおり、2行目に限っては違いましたね。すいません。
で、書き直します。
H列を作業用の列にします。(印刷の対象外または非表示)
1行目はタイトルで、2行目からデータが入っているとすると、
G2に、=IF(C2="小計",0,IF(COUNT(F2)=0,"",D2*F2))
H2に、=IF(C2="小計",0,IF(COUNT(F2)=0,0,G2))
G3に、=IF(C3="小計",H2,IF(F3="","",D3*F3)) と書いてG4~G83にコピー。
H3に、=IF(C3="小計",0,IF(COUNT(F3)=0,0,H2+G3)) と書いてH4~H83にコピー。
(最後が小計で終わることを前提とする場合)
G84に、=sum(G2:G83)/2 と書く。
(そうでない場合)
I列も作業用とし、I2に、=IF(C2<>"小計",G2,0)と書いてI3~I83にコピー。
G84に、=sum(I2:I83) と書く。
これで一応できると思います。あそこも空欄になった場合、とかさらなる条件がある場合はやはりVBAでしょうか。
マクロやVBAを毛嫌いされているようですが、このレベルの関数を考えるより、マクロやVBAをちょっとかじるほうが簡単です。また、複雑な関数はあとで他の人(や自分さえも)理解できなくなってメンテナンスができない、となる危険があります。
ありがとうございます。
マクロやVBAを毛嫌いしているわけではありません。
こういう作業を本職にしていないので、なかなかスキルアップに費やす時間がないので、可能な手段を出来るだけ駆使してできれば、と思っているだけなのです。
もちろん時間さえあれば、もっともっとスキルアップに努めるんですが・・・。
No.5
- 回答日時:
少し長い式ですがG2セルに以下の式を貼り付けて下方向にコピーしてみてください
=IF(C2="小計",IF(COUNTIF($C$1:C1,"小計")=0,SUM(INDIRECT("G$2:G"&ROW(A2)-1)),SUM(INDIRECT("G$2:G"&ROW(A2)-1))-SUM(INDIRECT("G$2:G"&MAX(INDEX(($C$1:$C1="小計")*ROW($C$1:$C1),))))),D2*F2)
G84の式は
=SUMIF(C2:C83,"小計",G2:G83)
になります
この回答への補足
ありがとうございます。
この数式、惜しいです。いい線いってます!
但し、問題点があります。
1)
3行目以降はこの数式でバッチリなのですが、2行目(データ入力行の1行目)にこの数式を使った場合、D2及びF2を空欄にしますと「#Value!」が出てしまいます。
何か妙案はありますか?
2)
「小計」を全く使用しなかった場合、合計が「0」になってしまいます。
「小計」を全く使用しないケースは少ないとは思うのですが、可能性は0ではないので、何か妙案はありますか?
以上、お手数とは存じますが、よろしく御教示お願い致します。
No.2
- 回答日時:
H列に仮に注文者名のようなものを作り(印刷時表示させない)
H列で集計させます。
ただし合計欄は削除しておきます。
集計の仕方は、データ→集計をクリック
グループの基準をH列もしくは仮タイトル名注文者にし
集計の方法を合計にし
集計する項目を金額にチェックを入れます
現在の集計表と置き換える・集計行をデータの下に挿入する、にチェックを入れてOKをクリック
これでH列の注文者ごとに小計が着いた表になるはずです。
この作業をマクロにしておけば簡単だと思います
ありがとうございます。
マクロもゆくゆくは勉強して使えるようにならないとは思うのですが、現状、何も出来ません。
せっかくのご回答でしたが、関数のみで対処できる方法で考えていきたいと思います。
マクロが出来れば関数を延々並べるよりも簡単なのでしょうが・・・。
No.1
- 回答日時:
H列を作業用の列にします。
(印刷の対象外または非表示にしてください)1行目はタイトルで、2行目からデータが入っているとすると、
G2に、=IF(C2="小計",H1,D2*F2) と書いてG3~G83にコピー。
H2に、=IF(C2="小計",0,H1+G2) と書いてH3~H83にコピー。
G84に、=sum(G2:G83)/2 と書く。
(説明)
Hの作業列は累積金額を表示、ただしCが「小計」だった場合は0とする。
Gの列は数量×単価を表示、ただしCが「小計」だった場合はH列の1つ上の行を示すことによりそこまでの小計を表示する。
G84は、小計分が2重にカウントされるので2で割る。
というようになっています。
関数だけで何とかしたい場合は、作業用の列を使う、というのが私のやりかたですが、これでどうでしょうか。
この回答への補足
ありがとうございます。
>G2に、=IF(C2="小計",H1,D2*F2)
これは、
G2に、=IF(C2="小計",H2,D2*F2)
の誤りですよね?
>H2に、=IF(C2="小計",0,H1+G2)
これは、
H2に、=IF(C2="小計",0,G2)
ではないでしょうか?
※2行目は加算する必要がないと思いますので・・・。
で、3行目が、
=IF(C3="小計",0,H2+G3)
ですよね?
実は現状のG2セルには、空白時に「value」が出ないように
=IF(COUNT(F2)=0,"",IF(COUNT(D2)=1,SUM(D2*F2),F2))
という数式が入っています。
このあたりを踏まえて、G2、G3、H2、H3各セルに入力する数式をご教示頂けないでしょうか?
お手数ですが、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUBTOTAL SUMIF?? 2 2023/03/16 11:25
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) excel 表計算 加算するセルが空白の時累計を表示しない又は塗りつぶして表示しないようにしたい 4 2023/07/02 11:50
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) 文字列を数式として変換する事はできますか? 6 2022/06/23 10:38
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) B列に、A列の数字が偶数の場合は1減算した数字、奇数の場合はそのまま数字を自動表示したい 4 2022/04/16 12:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報