Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Microsoft 365)
フィルター後のデータから条件ごとに集計したい
投稿日時: 23/08/12 13:43:38
投稿者: mild2

表のデータ一覧Aシートから、BシートでSUMIFS関数を使って条件を指定してきちんと条件ごとの集計が出来ています。そうしますと表にファイルターを掛けた状態で集計してもファイルターを無視して除外したデータも含めて集計されます。
これをフィルターで抽出したデータだけで上記の集計をしたい場合にはどうしたら良いでしょうか?
B表の集計方法は全く同じで、全部のデータを集計しないで、フィルターで抽出後のデータの集計方法をお尋ね致します。

回答
投稿日時: 23/08/12 17:26:43
投稿者: WinArrow

>フィルタ-
は、オートフィルタのことですよね?
  
SUMIFS関数
は、オートフィルタで非表示になっている行も対象になります。
  
対応策
(1)オートフィルタを使わずに、作業列に同じ条件でフラグを付ける
SUMIFS関数の条件に作業列を追加する。
が、簡単かな?
 

投稿日時: 23/08/13 00:09:11
投稿者: mild2

 
はい、データ→フィルタで絞り込むのですが、オートフィルタというんでしょうか。
 
はい、SUMIFS関数で条件を更にもう一つ追加しようと思います。
 
日付データで年月日の列データの中から、年のみで絞り込もうと思います。
年のみの条件式の記述をお教え下さい。宜しくお願いします。

回答
投稿日時: 23/08/13 08:01:52
投稿者: Mike

mild2 さんの引用:
フィルターで抽出したデータだけで上記の集計をしたい場合にはどうしたら良いでしょうか?
=SUBTOTAL(9,範囲)では駄目なんですか?
“実りある”回答を得るには、フィルタ無しの元データ、フィルタ時の抽出データ、期待する結果を示すデータのサンプル表を呈示すべきかと。
データは意図を伝える単なるサンプルなので、「会社の都合で云々」のような詭弁はあり得ないかと。

回答
投稿日時: 23/08/13 08:10:13
投稿者: WinArrow

>日付データで年月日の列データの中から、年のみで絞り込もうと思います。
 
日付データをC列、年を取り出す列(作業列)をG列と仮定します。
そしt、日付データは、yyyy/mm/dd形式で設定(入力)されていると仮定します。
 
セルG2に入力する数式
=YEAR(C2)
または
=TEXT(C2,"yyyy")
 
作業列を使わない方法もあります
=SUMIFS(集計列,C:C,">=2023/01/01",C:C."<=2023/12/31")

投稿日時: 23/08/14 11:28:39
投稿者: mild2

Mikeさん、SUBTOTALはまだ良くわかっていませんので、今回は今まで使っていたSUMIFSでやって行こうと思います。申し訳ありません。

投稿日時: 23/08/14 11:30:00
投稿者: mild2

WinArrowさん、作業列を使わない方法
=SUMIFS(集計,C:C,">=2023/01/01",C:C."<=2023/12/31")
 
↑これを私の場合に当てはめますと
=SUMIFS(集計,C:C,">=2017",C:C."<=2022") という事になりうまく行きました。
 
ただ、開始年2017 や終了年2022 は毎回毎回可変させますので、開始年を D1セルに、終了年をF1 に入力セルを設けました。そうしたらうまく集計できなくなりました。何が原因でしょうか? 
 
上手く行った計算式↓
=SUMIFS('2017-2022'!F:F,'2017-2022'!E:E,$B3,'2017-2022'!R:R,">=2000",'2017-2022'!R:R,">=2017",'2017-2022'!R:R,"<=2022")
 
上手く行かなくなった計算式↓
=SUMIFS('2017-2022'!F:F,'2017-2022'!E:E,$B3,'2017-2022'!R:R,">=2000",'2017-2022'!R:R,">=D1",'2017-2022'!R:R,"<=F1")

回答
投稿日時: 23/08/14 12:27:24
投稿者: 半平太

>上手く行った計算式
>=SUMIFS(・・・,'2017-2022'!R:R,">=2000",'2017-2022'!R:R,">=2017",・・・)                         
'2017-2022'!R:R,">=2000" この条件は無駄じゃないですか?
 
>上手く行かなくなった計算式
D1やF1のアドレスを文字列にしたらマズいです。その値(年)を文字列にする必要があります。
例:'2017-2022'!R:R,">="&D1

投稿日時: 23/08/14 13:41:49
投稿者: mild2

'2017-2022'!R:R,">=2000" この条件は無駄じゃないですか?
はい、ご指摘の通りでした。
  
>上手く行かなくなった計算式
D1やF1のアドレスを文字列にしたらマズいです。その値(年)を文字列にする必要があります。
例:'2017-2022'!R:R,">="&D1
 
ご教示の通りやりましたら、出来ました。ありがとうございました。
ただ、「 D1やF1のアドレスを文字列にしたらマズいです。その値(年)を文字列にする必要があります。
例:'2017-2022'!R:R,">="&D1 」
文字列にする場合、文字列にしない場合 の違いや意味がよく分かっていませんので、ご指摘の意味や内容が理解できるサイトをご存知でした
ら、お教え頂けませんでしょうか?

回答
投稿日時: 23/08/14 14:03:33
投稿者: 半平太

>文字列にする場合、文字列にしない場合 の違いや意味がよく分かっていません
そう難しいことじゃないです。
 
D1セルに2017が入っている場合
 
">=D1" : D1以上と解釈されるので、D2とかE1とかの文字データがR列にあれば、真になる。
">="&D1 : 2017以上となるので、2018とか2019とかの数値データがR列にあれば、真になる。
 
当然、後者の指定でなければ今回の目的は達せられない。

回答
投稿日時: 23/08/14 15:12:53
投稿者: WinArrow

引用:

日付データで年月日の列データの中から、年のみで絞り込もうと思います。

という説明があったので、
条件としt
>">=2023/01/01"
のような回答をしました。
しかし、
引用:
">=2017"

という結果報告がありました。
 
この状況は、
引用:
日付データで年月日の列データ

の説明が不十分(日付データが「文字列形式である」が抜けていた)
であると思います。
 
状況説明は正確にしてお願いしたいですね・・・

投稿日時: 23/08/14 15:16:32
投稿者: mild2

はい、わかりました。ありがとうございました。