Excelの関数が苦手で試行錯誤しております。
ぜひ、お知恵をお貸しください。
シートが5つあります。
1.統計
2.A
3.B
4.C
5.D
各シートには、
上級 200/150/100/90/80/70
中級 150/100/80
普通 80/60/50
合計12種類の項目があるとします。
例 1月 2月 ・・・・・・・・・・12月
上級 100 5100 2300
上級 150 2850 8900
普通 80 550 4300
・・
これを、2~5のシート各「上級」「中級」「普通」ごとに
統計側に各項目で数字を合計したいのです。
各シートごとで、上級/中級/普通で合計をして、最後に統計に
反映すればいいのでしょうが、面倒なので、統計のシートの中で、
関数にて、2~5の合計値として
例 1月 2月 ・・・・・・・・・・12月
上級 10000 24000
中級 58000 9500
普通 34000 32000
と一気にしたいのです。
もしご存知であれば、すばやく簡単にできる関数や方法を
教えてください。
以上、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんな感じでよいのでしょうか?
質問文の内容とこれから説明しようとしている内容を合わせるため
念の為、下記のように仮定義しておきます。
シート5つの名称を仮にそれぞれ
統計、A、B、C、D、Eとして
例として出されているシート(?)の
「例」の文字の所がA1セルとして、
1月、2月~~が順にC1、D1~~セル。
続いて上級、100、5100~~がA2、B2、C2~~セル。
12種類の項目ということなので、
ひとまず13行(A13セルの行)までとします。
統計のシートも同様に
「例」の列がA列、B列が空欄で、1月がC列…。
質問文では上級、中級、普通の3つとなっているので
4行(A4セルの行)まで。
以上の前提の時、
統計シート、上級の1月(C2セル)の内容は次の通り。
=SUMIF(A!$A$2:$A$13,"上級",A!C2:C13)+SUMIF(B!$A$2:$A$13,"上級",B!C2:C13)+SUMIF(C!$A$2:$A$13,"上級",C!C2:C13)+SUMIF(D!$A$2:$A$13,"上級",D!C2:C13)
あとはこれをコピペしたセルを元に、
そのセルを囲っている黒い太枠の右下部分の黒ポツを
適当なセルまでグリグリのズリズリとドラッグすればOKだと思います。
中級、普通についても"上級"の部分を置換するだけで使えます。
ちなみに、ABCDのシートのA列を見たうえで集計しているので
各シートでのデータの行位置(上級、中級、普通の順序)はバラバラで構いません。
更にちなみに、
=SUMIF(A!$B$2:$B$13,200,A!C2:C13)+SUMIF(B!$B$2:$B$13,200,B!C2:C13)+SUMIF(C!$B$2:$B$13,200,C!C2:C13)+SUMIF(D!$B$2:$B$13,200,D!C2:C13)
とすると、12種類の項目別の集計にもなります。
(この場合は、上級で200の場合のデータが対象。)
但し、セルに格納されている項目の部分が数値データの場合。
文字データで格納しているなら 200 が "200" になります。
とりあえずこちらで簡単な動作確認をしてみたものではありますが、
意図しているのと違う値で集計されたりした場合は
ご連絡ください。
ご回答、ご指導有難うございました。
理解及び解決できました。
助かりました。
もう1点ご質問ですが、関数が苦手です。
初歩/基本的な関数は使用できますが、IFや上記のような特異な
関数になってきますと、まったく理解できずにおります。
関数の勉強方法として、何か良い資料やHPなどございましたら
是非教えてください。また、どうやって勉強すればよいかなども
教えていただけると助かります。
以上、宜しくお願い致します。
No.2
- 回答日時:
>もしご存知であれば、すばやく簡単にできる関数や方法を
>教えてください。
ということについて少し・・・。
データのストックをする際に、
例 1月 2月 ・・・・・・・・・・12月
上級 100 5100 2300
上級 150 2850 8900
普通 80 550 4300
というデータのストック方法をやめて、
つまり時系列を横方向に展開していくのをやめて、
縦方向に展開していきます。
例えば次のように
区分01 区分02 月 値
上級 100 1月 5100
上級 100 2月 2300
上級 100 3月 2350
上級 150 1月 2850
上級 150 2月 8900
上級 100 3月 5000
普通 80_ 1月 550
普通 80_ 2月 4300
このとき、
区分01 区分02 月 値
上級 100 1月 5100
普通 80_ 1月 550
上級 100 3月 2350
上級 100 3月 5000
上級 150 2月 8900
上級 150 1月 2850
普通 80_ 2月 4300
上級 100 2月 2300
といった風に、上下が入り乱れていても何の問題もありません。
こうして記録(ストック)しておくと、Excelの場合
「ピボットテーブル」という機能で
以下のレイアウトの表は簡単に集計できます。
例 1月 2月 ・・・・・・・・・・12月
上級 100 5100 2300
上級 150 2850 8900
普通 80 550 4300
VBAも関数も要らず、少しのウィザード応答と
ドラッグ操作、クリック、リストボックス選択などだけでできます。
このようなレイアウトのほか、
区分01だけの集計
月だけ
区分2だけ
区分2と月だけ
平均、累計、
なども計算式、関数、VBAなしで瞬間表示切り替えができます。
各項目の縦と横の入れ替えもドラッグだけで可能です。
ピボットテーブルはとても便利な機能ですので、
是非覚えられるとよいと思います。
なお、今回ご紹介したデータのストック方法は
「リスト形式の表」「リストデータ」「明細表」などとも呼ばれます。
縦方向にだけ、データが増えていきます。
対して・・・、
例 1月 2月 ・・・・・・・・・・12月
上級 100 5100 2300
上級 150 2850 8900
普通 80 550 4300
のように縦横集計されているものを
「マトリクス表」「クロス集計表」などと呼びます。
このうち「リスト形式の表」での管理は、
ピボットテーブルの機能で「マトリクス表」に変化させたり
並べ替え、その他の加工がとても簡便にできるようになります。
無駄なVBA、関数などをできるだけ少なくして
データを集計・管理できるようになりますから、
是非、データをストックする際は、「リスト形式」で
ストックすることを考えてみてください。
なお、「リスト形式の表」は、各シートに分かれていても、
列の内容が同じなら、最終的にそれらをさらに別シートに
縦にまとめてしまえば、ピボットテーブルが扱えます。
1つのシートに列がもし増えてしまったら、
他のシートも同じ列を増やします。
その際、値が無ければ空白セルにしておいても問題ありません。
強いて言うと空白セルには置換機能にて一括で、「---」など、
自分の好みの空白をあらわす値を適当に入れておけば
エラーも出なくなるので安心です。
「リスト形式」でのデータストックは
データ管理の基礎中の基礎です。
これがさらに発展したものが例えば
「リレーショナルデータベース」と
なっていくわけです。
「リレーショナルデータベース」は、例えば
GoogleやYahooもそのデータ管理に利用している形態です。
つまりそれほどに効率がよいのです。
その「リレーショナルデータベース」を構築する上での
基礎事項が「リスト形式」でのデータストックなのです。
こういったことを知らずにExcelを使うと、
無駄なVBAや関数を随所で使わないといけなくなり、
「リスト形式の表」とピボットテーブルを知っている場合の
10倍は効率が悪くなってしまいます。
ちなみに、ピボットテーブルと
ExcelのMicrosoftQueryという機能を使うと
GoogleやYahooと同じような
「リレーショナルデータベース」をExcel上で構築することができます。
もちろんシンプルな構造のものだけですが、
この2つを組み合わせると、さらにデータ管理効率が増します。
なおピボットについてはこちらの質問でも回答しましたので
ご参考にしてください。
http://oshiete1.goo.ne.jp/qa4650857.html
URLなどもご参考にしてください。
いろいろとおせっかい、失礼いたしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Excel(エクセル) 何方か知恵をください… 下記のシート1にシート2のDATAを表示させたいです。 (シート1の2行目の 6 2022/03/28 17:27
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Excel(エクセル) vba シートの並び替え 1 2023/04/19 13:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessを開きなおすとテキスト...
-
エクセルのフィルタ抽出が固まる
-
データベースとウェブ(WWW)の共...
-
Excelフィルタ抽出で「検索して...
-
警察はスマホに保存した動画や...
-
「1004:アプリケーション定義...
-
Accessフォームからパラメータ...
-
テキストボックスにコントロー...
-
シャープレジスター エラーコード
-
20万行あるデータを動かしたい
-
manana というやつで、間違って...
-
構文エラー:演算子がありませ...
-
DB2のSELECTでカンマ編集につい...
-
マクロの別シートのデータ振り...
-
Access フォーム上でコンボボッ...
-
エクセル 顧客管理表に担当ごと...
-
CSVファイルでテキストの改行の...
-
Access SQL のMID関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
警察はスマホに保存した動画や...
-
Accessを開きなおすとテキスト...
-
ACCESSのSQLで、NULLかNULLでな...
-
エクセルのフィルタ抽出が固まる
-
CSVファイルでテキストの改行の...
-
Accessフォームからパラメータ...
-
旧filemakerで和暦(令和など)...
-
ファイルが壊れて読み取れませ...
-
Accessのリンクテーブルについて
-
更新クエリをリンクデータベー...
-
リスト形式の表とデータベース...
-
縦書きテキストボックスの表示"...
-
Notion@リレーション値の取得...
-
汎用カード型のデータベースソ...
-
「1004:アプリケーション定義...
-
構文エラー:演算子がありませ...
-
c言語の問題です。これを踏まえ...
-
20万行あるデータを動かしたい
-
accessでの請求管理について
おすすめ情報