EXCELでフィルターをかけてSUBTOTALを求めたいのですが、
C13とD13のそれぞれ、定価*数量の合計を出しフィルターをかけた際にSUBTOTALで表示させる方法を教えて下さい。
C13に =SUMPRODUCT($B$3:$B$12,$C$3:$C$12)で合計を出しましたが、これにSUBTOTALを合体させることは可能でしょうか?
よろしくお願いします。

「EXCEL SUMPRODUCTとSUB」の質問画像

A 回答 (2件)

一部修正


作業列に (=SUBTOTAL(6,B3,C3))

作業列(L列として)に (=SUBTOTAL(3,A3))
のように前後にかっこを付けてください。最下段がフィルターの除外になる可能性があります

推奨はしないけどINDIRECT案
=SUMPRODUCT(SUBTOTAL(6,INDIRECT("B"&ROW(A3:A12)&":C"&ROW(A3:A12))))
    • good
    • 0

場合にお応じて2パターン


作業列に =SUBTOTAL(6,B3,C3)
フィルハンドルダブルクリック
C13セルに =SUM(作業列)

とか
作業列(L列として)に =SUBTOTAL(3,A3)
フィルハンドルダブルクリック
C13セルに
=SUMPRODUCT($B$3:$B$12,$C$3:$C$12,$L$3:$L$12)

SUBTOTALは適宜100番台を使用のこと
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q1つのSUMIFSをSUMで括った数式の意味について

エクセル2010を使っている者です。

会社で使っているファイルで
=SUM(SUMIFS(合計!J:J,合計!G:G,{"1000","9000"},合計!H:H,"<=160",合計!F:F,5000))
という数式を使っていました。

SUMIFS関数はSUM(合計)の意味を含んでおり、SUMで括る意味がわかりませんでした。
(SUMの中に複数のSUMIFSを入れているのであれば、SUMIFS(・・・)+SUMIFS(・・・)という
意味になり理解できるのですが)

また、{}の意味もわかりません。

どなたか、ご教示願います。

Aベストアンサー

SUMIFS(合計!J:J,合計!G:G,{"1000","9000"},合計!H:H,"<=160",合計!F:F,5000)
を数式バー内で選択して[F9] 配列の結果が返ります。1行2列
それを合計するSUMです。
G列が1000 または 9000の場合で、かつ
H列が160以下で かつ
F列が5000 であるJ列を合計しなさい

G列が1000、かつ
H列が160以下で かつ
F列が5000 であるJ列を合計したものと
G列が9000、かつ
H列が160以下で かつ
F列が5000 であるJ列を合計したものを足しなさい
でもよいです

Qエクセル 関数 教えてください!

添付画像のようにしたいのですが、エクセルでそんなことが出来るのか分かりません。
賢者の皆様、知恵をお貸しください。

詳細はこんな感じです。

①②③は条件付書式ということはなんとなく分かります!
僕なりに一生懸命悩んでしましたが、浅知恵のためお手上げ状態です。。

①=予想と結果が1番で一致したときに、予想列の該当セルを黄色に塗りつぶす
②=予想と結果が2番で一致したときに、予想列の該当セルを赤色に塗りつぶす
③=予想と結果が3番で一致したときに、予想列の該当セルを緑色に塗りつぶす
④=予想A、予想B合計の統計点数を出す(1番予想が3点、2番予想は2点、3番予想は1点)
⑤=④を数字の大きいもの順に抽出する(同じ値は表示順で抽出)
⑥=1番予想が予想通りになった確率を求める
⑦=2番予想が予想通りになった確率を求める
⑧=3番予想が予想通りになった確率を求める

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

Aベストアンサー

こんばんは!

①~③は大丈夫というコトなので・・・

④~⑤についてだけ
まず④は
↓の画像のように作業用の表を作成するのが簡単だと思います。
「作業表1」は1番~3番の「得点?」の表を作成しておきます。
K2セルに
=IF(B9="",0,VLOOKUP(B9,$O$2:$P$4,2,0))+IF(F9="",0,VLOOKUP(F9,$O$2:$P$4,2,0))

という数式を入れ列・行方向にフィルハンドルでコピー!

⑤について
「作業表2」のO11セルに
=COUNTIF(K$2:K$8,">"&K2)+COUNTIF(K$2:K2,K2)

という数式を入れフィルハンドルで右へ3列分・下へ7行コピーしておきます。
そしてK11セルに
=INDEX($J$2:$J$8,MATCH(ROW(A1),O$11:O$17,0))

という数式を入れ列・行方向にフィル&コピー!
これで画像のような感じになります。

※ 作業用の表が目障りであれば遠く離れた列にするか
非表示にしておいてください。

⑥~⑧については
0%か100%のどちらかになってしまいますよね?
それでも良いのであれば・・・
B17セル(%表示にしておく)に
=(VLOOKUP($A17,$A$3:$D$5,COLUMN(),0)=INDEX($A$9:$A$15,MATCH($A17,B$9:B$15,0)))*1

という数式を入れフィルハンドルで列・行方向にコピー!

B17セルを選択 → B17セルの四辺にマウスポインタを移動させ上下左右の小さな矢印になったところで
Ctrlキーを押しながらF17セルまでドラッグ&ドロップ
数式内の「COLUMN関数」だけに手を加え
=(VLOOKUP($A17,$A$3:$D$5,COLUMN(B1),0)=INDEX($A$9:$A$15,MATCH($A17,F$9:F$15,0)))*1

という数式にして、これも列・行方向にフィル&コピー!

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

①~③は大丈夫というコトなので・・・

④~⑤についてだけ
まず④は
↓の画像のように作業用の表を作成するのが簡単だと思います。
「作業表1」は1番~3番の「得点?」の表を作成しておきます。
K2セルに
=IF(B9="",0,VLOOKUP(B9,$O$2:$P$4,2,0))+IF(F9="",0,VLOOKUP(F9,$O$2:$P$4,2,0))

という数式を入れ列・行方向にフィルハンドルでコピー!

⑤について
「作業表2」のO11セルに
=COUNTIF(K$2:K$8,">"&K2)+COUNTIF(K$2:K2,K2)

という数式を入れフィルハンドルで右へ3列分・下へ7行コピーしておきま...続きを読む

Qエクセル SUMPRODUCT関数について

SUMPRODUCT関数を使い、以下の合計を件数を出したいのですが、いろいろ調べてもよくわかりませんのでご教示をお願いいたします。(エクセル2010使用)

【やりたいこと】
以下の表を使用し、「みかん」と「ばなな」を購入した件数を月ごとに合計して表示する関数を作りたい。4月の合計件数はB8セル、5月はB9セル、6月はB10セルに表示できるようにします。

     (A列)  (B列)
(行) 種類  購入日
 1  みかん 4月3日
 2  ばなな 4月15日
 3  りんご 5月6日
 4  りんご 5月30日
 5  ばなな 6月7日
 6  みかん 6月9日
 7
 8 【結果】 4月 2
 9      5月 0
10      6月 2

よろしくお願いします。

Aベストアンサー

こんにちは!

今回の質問の場合は「OR」条件になりますので、足し算にする必要があります。

↓の画像ではA8~A10セルの表示形式をユーザー定義から
0月
とし、単に4とか5という数値のみを入力しています。

B8セルに
=SUMPRODUCT((MONTH(B$1:B$6)=A8)*(A$1:A$6="みかん"))+SUMPRODUCT((MONTH(B$1:B$6)=A8)*(A$1:A$6="ばなな"))

という数式を入れフィルハンドルで下へコピーすると
画像のような感じになります。m(_ _)m

Qエクセル関数に詳しい方お願いします! {=IFERROR(INDEX('反映用(触らない)'!$M$

エクセル関数に詳しい方お願いします!

{=IFERROR(INDEX('反映用(触らない)'!$M$1:$M$92,SMALL(IF('反映用(触らない)'$M$1:$M$92<>””,ROW('反映用(触らない)'!$M$1:$M$92)),ROW('反映用(触らない)'!M1))),””)}
の関数で、反映用(触らない)のシートM1に13-エと入力したら入力先のシートC17に13-エと反映されます。
同じ要領で反映用(触らない)のシートM93に5月10日と入力して入力先のシートB17に反映したいのですができません。反映用(触らない)M93〜M184までのせるで空白のところは詰めて上から入力された順番に反映できるようにしたいのですが皆さんのお力をお貸しください

Aベストアンサー

では基本的なところで 配列数式
https://www.forguncy.com/blog/20170110_arrayformula

一応 ROW,INDEX関数
http://excel.onushi.com/function/row.htm
https://kokodane.com/kansu_lookup_10.htm

配列定数
https://support.office.com/ja-jp/article/%E9%85%8D%E5%88%97%E5%AE%9A%E6%95%B0%E3%82%92%E9%85%8D%E5%88%97%E6%95%B0%E5%BC%8F%E3%81%AE%E4%B8%AD%E3%81%A7%E4%BD%BF%E3%81%86-477443ea-5e71-4242-877d-fcae47454eb8

範囲を狭めた配列数式の内側から[F9]キーで計算させて、理解を深めるとよいと思います
数式-「数式の検証」でもいいかも

関数IF内の計算結果が、配列で戻ってくるのがこの数式のポイントです。

配列数式のガイドラインと例
https://support.office.com/ja-jp/article/%E9%85%8D%E5%88%97%E6%95%B0%E5%BC%8F%E3%81%AE%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%A8%E4%BE%8B-7d94a64e-3ff3-4686-9372-ecfd5caa57c7?CorrelationId=d66fe414-4ccb-4716-a635-a90f85ed3a5a&ui=ja-JP&rs=ja-JP&ad=JP&fromAR=1
より一部編集、抜粋
配列数式を使用する場合の短所
●Ctrl キーを押しながら shift キーを押しながら Enter キーを押すことを忘れる。
●ブックの他のユーザーは、数式を理解できない可能性がある。
●コンピューターの処理速度とメモリによっては、大きな配列数式を使用すると、計算速度が低下することがある。

※直接的な回答が欲しければ、B17セルにどのような数式を入力したかを返信してください。
エラーの結果だけでは何をしたのかわかりません

では基本的なところで 配列数式
https://www.forguncy.com/blog/20170110_arrayformula

一応 ROW,INDEX関数
http://excel.onushi.com/function/row.htm
https://kokodane.com/kansu_lookup_10.htm

配列定数
https://support.office.com/ja-jp/article/%E9%85%8D%E5%88%97%E5%AE%9A%E6%95%B0%E3%82%92%E9%85%8D%E5%88%97%E6%95%B0%E5%BC%8F%E3%81%AE%E4%B8%AD%E3%81%A7%E4%BD%BF%E3%81%86-477443ea-5e71-4242-877d-fcae47454eb8

範囲を狭めた配列数式の内側から[F9]キーで計算させて、理解を深めるとよいと思い...続きを読む

QSUMIFとOFFSETの組み合わせについて

OFFSET関数初心者の為、ご教授願います。

添付したような売上管理表があります。
月の行から粗利の行まで8行で作成されている表が何行もあります。
そして、一番下に合計の表があり、SUMIF関数で集計を出しているのですが
今後、商品2、商品3といったように新規で売上が発生すると、この8行の表を
コピーして挿入で増やしていくことになります。

その際、参照先の行が可変するので都度、数式を変えなくても行が追加になったら
合計のSUMIF関数の参照先が自動的に変わるようにしたいです。
ちなみに、合計、実績の列ともに参照先可変としたいです。
現時点、下記の数式で処理をしています。
=SUMIF($C$4:C54(C列の項目参照),$C68(数量),E$4:E54(実績)の列を参照)
数量以下、同様の数式です。

何卒、よろしくお願いいたします。

Aベストアンサー

No2です。
No2で、E列が変わっても、対応できるようにしました。(E→Hの場合にも対応)
=SUMIF(INDIRECT("$C$4:$C"&ROW()-10),INDIRECT("$C"&ROW()),INDIRECT(ADDRESS(4,COLUMN(),4)&":"& ADDRESS(ROW()-10,COLUMN(),4)))

Q=SUBTOTAL に =COUNTIF の機能を実装

お世話になります。

掲題の件で ご相談が御座います。


=SUBTOTAL(3,U5:U63) と
=COUNTIF(U5:U63,"完了") を 1つのセルで表現したいのですが
これは不可能でしょうか?

本当は「U列」だけではなく、20~30列全部に そのような機能を持った関数を入れたいのですが
両方を兼ね備えた関数を どなたかご存知ないでしょうか。

ようは、その表全体にフィルタを設定しており、いくつかの条件で抽出した時に「完了」の数が変わるので
現状 自分が思いつく所で考えると別シートに移して「=COUNTIF(●:●,"完了")」を都度入れていくか?
ぐらいしか思いつきません。

・フィルタで抽出しても元の範囲選択はそのまま。
・フィルタで抽出後に見えている選択範囲の「完了」だけを数えて欲しい
・上記2つの条件で1つのセルに数式を入力したい。

この3つの条件が満たされれば「=SUBTOTAL」や「=COUNTIF」にこだわる必要はありません。

どなたか ご存知であればご教示いただけますでしょうか。

説明が不足のようでしたら何度でも補足致しますので何卒宜しくお願い致します。

お世話になります。

掲題の件で ご相談が御座います。


=SUBTOTAL(3,U5:U63) と
=COUNTIF(U5:U63,"完了") を 1つのセルで表現したいのですが
これは不可能でしょうか?

本当は「U列」だけではなく、20~30列全部に そのような機能を持った関数を入れたいのですが
両方を兼ね備えた関数を どなたかご存知ないでしょうか。

ようは、その表全体にフィルタを設定しており、いくつかの条件で抽出した時に「完了」の数が変わるので
現状 自分が思いつく所で考えると別シートに移して「=COUNTIF(●:●,"...続きを読む

Aベストアンサー

またまたまた登場、myrangeです。

質問者がマクロをどの程度使えるのか分からないのでなんですが、
(質問から推測するにあまり使ったことがない?)
先に提示したマクロは関数ではありませんから
データの内容が変るたびに(結果を求めたい時点で)実行しなければいけません。
もし、SUBTOTALのような関数(セルに式としてセットする)にしたければ
以下のようなユーザー定義関数を作ることになります。

'---------------------------------------------- 
Function Ookami(myRange As Range, myStr As Variant) As Long
 Dim Rng As Range
 Dim Cnt As Long
 For Each Rng In myRange
  If Rng.EntireRow.Hidden = False And Rng.Value = myStr Then
    Cnt = Cnt + 1
  End If
 Next Rng
 Ookami = Cnt
End Function
'---------------------------------------------

使い方は、以下のようにします。
関数名は質問者のハンドルネームです。。(^^;;;

■Ookami(セル範囲, 検索文字)■

=Ookami(U5:U63,"完了")

F5~F666の範囲で、表示されてる"連絡済"をカウントしたければ

=Ookami(F5:F666,"連絡済")

要するにふつうの関数と同じような使い方になります。
以上です。
 

またまたまた登場、myrangeです。

質問者がマクロをどの程度使えるのか分からないのでなんですが、
(質問から推測するにあまり使ったことがない?)
先に提示したマクロは関数ではありませんから
データの内容が変るたびに(結果を求めたい時点で)実行しなければいけません。
もし、SUBTOTALのような関数(セルに式としてセットする)にしたければ
以下のようなユーザー定義関数を作ることになります。

'---------------------------------------------- 
Function Ookami(myRange As Range, myStr...続きを読む

QExcelについて教えて頂きたいのですが。縦に1~10行あり、名前あり、例えば5番目の方が休みの時に

Excelについて教えて頂きたいのですが。縦に1~10行あり、名前あり、例えば5番目の方が休みの時に自動的に5番目の行の所に下から詰める方法はありますか?

Aベストアンサー

配列の確定をしない場合、こんなふうにできます。

=IFERROR(INDEX($A$1:$B$11,SUMPRODUCT(SMALL(ROW($A$1:$A$11)+($B$1:$B$11<>"")*100,ROW(A1))),1),"")

注意点
=IFERROR(INDEX($A$1:$B$11,
  $A$1:$B$11 ←全体の範囲/1行目から始まる
  
SUMPRODUCT(SMALL(
ROW($A$1:$A$11)+($B$1:$B$11<>"")*100,
  $A$1:$A$11 ,$B$1:$B$11 ←1行目から始まる

ROW(A1))),1),"")

つまり、計算上で出てくる「0値」の追い出しですね。

QIF、AND関数について

EXCEⅬの超初心者です。下記の表はA社の「支払い表」見本と、銀行の「振り込み料金表」です。この支払表に送料を表示させたくて、IF関数やAND関数で計算式を作りたいのですが、エラーばかり! どなたか助けていただけませんか!!

◇支払い表 ◇
支払先(口座名) 振込先   銀行番号/支店番号 口座番号 振込金額     送料
川田敦男    三菱東京UFJ/室町   0005/430 4683231 \60016  ?
小野田美奈子 三井住友/新宿西   0009/259 4030041 \27000  ?
田口たつ    みずほ/横浜駅前   0001/292 1207310 \9000  ?
株式会社テレパ みずほ/青山   0001/211 5675505 \31680   ?



◆当行同一支店内宛
3万円未満 216円
   3万円以上 432円

◆当行本支店宛
3万円未満 324円
   3万円以上 540円

◆他行宛(電信)
3万円未満 648円
  3万円以上 864円

EXCEⅬの超初心者です。下記の表はA社の「支払い表」見本と、銀行の「振り込み料金表」です。この支払表に送料を表示させたくて、IF関数やAND関数で計算式を作りたいのですが、エラーばかり! どなたか助けていただけませんか!!

◇支払い表 ◇
支払先(口座名) 振込先   銀行番号/支店番号 口座番号 振込金額     送料
川田敦男    三菱東京UFJ/室町   0005/430 4683231 \60016  ?
小野田美奈子 三井住友/新宿西   0009/259 4030041 \27000  ?
田口たつ    みず...続きを読む

Aベストアンサー

No4の続きです。
I2を順次下にコピペすると I3,I4と自動的に変わりまり、
    右にコピペすると J2,K2と自動的に変わります。
I2 は 相対セルの形式だから。
$I$2 の絶対セルの形式にすれば、どこにコピペしても$I$2は固定のまま変わりません。
詳しくは、参考書で相対セルと絶対セルの違いを確認してください。
G2に入力する式はI2,J2ではなく、$I$2,$J$2の絶対セルで回答してあります。

また
>小生は、IF(C2=100,IF(D2=1,・・・つまりCとDを振り出し銀行ナンバー、支店のナンバーを” ”で囲って(文字認識化)、この双方の文字に当てはまるもの、一つに当てはまるもの、すべてに当てはまらないもの、として選択しようとしていました。

この考え方で概ねよいですが、「一つに当てはまるもの」については
もしも他行の支店番号が貴方のみずほ銀行の支店番号と同じになることがあり得るなら
他行とみずほの判別を追加する必要があると思います。

Q「年月」ごとにカウント

お世話になっております。

C列には、『初回入会年月日』として入力しております。
E列から右方向へ、「2017年1月」を始めとし「年月」を表記しております。
この「年月」ごとの欄に、C列に列記している「初回入会年月日」を検索して
該当する「年月」の件数を表示させる仕組みです。

例えば、図表から
C列の「初回入会年月日」には、

「2017年1月17日」
「2017年1月19日」
「2017年1月17日」
「2017年1月31日」

1月には4件あり、それをE2に、「4」と表示させるといった感じです。

C列の「初回入会年月日」を検索し、該当する「年月」の件数を表示させる関数式を教えてください。
m(__)m

※補足説明
・C列の表示形式は、「2017/○/○」と打込み、ユーザー定義「yyyy"年"m"月"d"日"」で設定しております。
・「年月」の項目の表示形式は、年頭の「2017/1/1」と入力してユーザー定義で
「yyyy"年"m"月"」と設定し、
 2月以降は、「2017/2/1」と打ち込み、それをユーザー定義「m"月"」で設定
・C列のデータ件数 500件 $C$2:$C$501

お世話になっております。

C列には、『初回入会年月日』として入力しております。
E列から右方向へ、「2017年1月」を始めとし「年月」を表記しております。
この「年月」ごとの欄に、C列に列記している「初回入会年月日」を検索して
該当する「年月」の件数を表示させる仕組みです。

例えば、図表から
C列の「初回入会年月日」には、

「2017年1月17日」
「2017年1月19日」
「2017年1月17日」
「2017年1月31日」

1月には4件あり、それをE2に、「4」と表示させるといった感じです。

C列の「初...続きを読む

Aベストアンサー

No.2・3です。

まずNo.2の方に関して・・・
SUMPRODUCT関数の範囲内に「文字列」が含まれているというコトはないですか?
文字列が含まれている場合はエラーになります。

No.3に関して・・・
C列と1行目の日付はどちらもシリアル値になっているのですよね?
そして1行目の日付はすべて各月の1日のシリアル値だというコトなのであのような数式にしました。

お示しの画像通りの表を手元のExcelで確認し、投稿した数式です。

こちらではE2セルにちゃんと「4」が表示されています。

※ 502行目以降に数値データがあるととんでもない結果が返るコトがあります。
No.3の数式の範囲を501行目までに限定し
=COUNTIFS($C2:$C501,">="&E1,$C2:$C501,"<"&EDATE(E1,1))

としたらどうなりますか?m(_ _)m

QExcelで名前の7文字組みの方法を教えてください

Excelデータで名前をスペースで入れて7文字組みに変換させたいのですが、
関数またはVBAなどの方法を教えていただけませんでしょうか?
今は関数で個別でMID関数を使い分けてしています。

例) 
林一    → 林     一     田中一   → 田 中   一
林太郎   → 林   太 郎     田中太郎  → 田 中 太 郎
林孝太郎  → 林   孝太郎     田中孝太郎 → 田 中 孝太郎

佐々木一  → 佐々木   一
佐々木太郎 → 佐々木 太 郎
佐々木孝太郎→ 佐々木 孝太郎

Aベストアンサー

板汚しすみません。まだ半角スペース残ってた
=CHOOSE(LEN(A2),,LEFT(A2,1)&REPT(" ",5)&RIGHT(A2,1),
REPLACE(LEFT(A2,B2),2,0,REPT(" ",B2-1))&REPT(" ",3)&REPLACE(RIGHT(A2,3-B2),2,0,REPT(" ",2-B2)),
IF(MOD(B2,2),LEFT(A2,B2)&REPT(" ",3)&RIGHT(A2,4-B2),
REPLACE(LEFT(A2,2),2,0," ")&" "&REPLACE(RIGHT(A2,2),2,0," ")),
IF(OR(B2=1,B2=4),LEFT(A2,B2)&REPT(" ",2)&RIGHT(A2,5-B2),
REPLACE(LEFT(A2,B2),2,0,REPT(" ",3-B2))&" "&REPLACE(RIGHT(A2,5-B2),2,0,REPT(" ",B2-2))),
LEFT(A2,B2)&" "&RIGHT(A2,6-B2),A2)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報