Excel (一般機能)

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

 
(Windows 11 Home : Microsoft 365)
複数列の1列を合計したい。
投稿日時: 26/04/08 20:15:00
投稿者: 桃太郎7

質問が内容不十分でしたので再度質問させて下さい。
  A  B  C  D   E  F  G   H   I
1 NO 日付 ID 商品名 数量 日付 ID 商品名 数量 4列を1グループとして12グループ
2 1  4/10 A 商品A  2 4/12 B  商品B  1  合計数量は1行目の最終列に求めたい
3 2  5/1  C 商品C  3  5/15 D  商品D  1  グループの中が日付、”A”、商品A、数量
                           ID別に(A,B,C,D)数量の合計を求めたい。
 の内容でsumifやsumifsでやりましても数量の合計が出来ません。
 宜しくお願いします。

回答
投稿日時: 26/04/09 09:20:54
投稿者: sk

引用:
4列を1グループとして12グループ

引用:
グループの中が日付、”A”、商品A、数量

・A1 セルを始点とする([NO]列を含む) 49 列( A:AW )の表がある。
 
・この表の 1 行目は列見出し行、2 行目以降は全てデータ行である。
 
・[NO]列を除く 48 列( B:AW )のそれぞれのデータ行には、
 [日付]、[ID]、[商品名]、[数量]の 4 つの列で構成されるレコードが
 横並びで最大 12 件まで記録されている(何も記録されていない範囲もある)。
 
以上のような前提であると仮定して、
 
引用:
ID別に(A,B,C,D)数量の合計を求めたい。

その集計結果をどこに、どのようなレイアウトで出力なさりたいのでしょうか。
 
いずれにせよ、まずその表を元に( Power Query を使用するなどして)
正規形テーブルを作成されることをお奨めします。

回答
投稿日時: 26/04/09 09:57:07
投稿者: んなっと

一つ前の半平太さんの式を、データ範囲を変えて"D"を追加するだけですよ。
すごく勉強になる式です。

投稿日時: 26/04/09 10:07:10
投稿者: 桃太郎7

sk さんの引用:
引用:
4列を1グループとして12グループ

引用:
グループの中が日付、”A”、商品A、数量

・A1 セルを始点とする([NO]列を含む) 49 列( A:AW )の表がある。
 
・この表の 1 行目は列見出し行、2 行目以降は全てデータ行である。
 
・[NO]列を除く 48 列( B:AW )のそれぞれのデータ行には、
 [日付]、[ID]、[商品名]、[数量]の 4 つの列で構成されるレコードが
 横並びで最大 12 件まで記録されている(何も記録されていない範囲もある)。
 
以上のような前提であると仮定して、
 
引用:
ID別に(A,B,C,D)数量の合計を求めたい。

その集計結果をどこに、どのようなレイアウトで出力なさりたいのでしょうか。
 
いずれにせよ、まずその表を元に( Power Query を使用するなどして)
正規形テーブルを作成されることをお奨めします。

早速のご回答ありがとうございます。
上手く質問内容が出来なくて申し訳ないです。
設定内容は上記の内容で間違いないです。
ID"A"から"K"迄を、右側BC6セルに集計したいです。
数式で教えて下さい。

回答
投稿日時: 26/04/09 10:49:48
投稿者: んなっと

  A   B  C    D   E   F  G    H   I
1 NO 日付 ID 商品名 数量 日付 ID 商品名 数量
2  1 4/10  A  商品A   2 4/12  B  商品B   1
3  2  5/1  C  商品C   3 5/15  D  商品D   1
  
BC列に上からA〜Kを入力して
  
  BC  BD
 1 A 12
 2 B  6
 3 C 18
 4 D  6
 5 E  0
 6 F  0
 7 G  0
 8 H  0
 9 I  0
10 J  0
11 K  0
  
BD1
=SUMIF(C:.AU,BC.:.BC,E:E)

投稿日時: 26/04/09 11:14:15
投稿者: 桃太郎7

今回の質問の実際のレイアウトで再度説明をします。
  E  F  G  H・・・4列グループここからAW,AX,AY,AZ,迄が選択範囲です。
1 日付 ID 商品 数量・・集計4列はBA_ID、BB_商品、BC_数量です。
2 4/9  A 商品A 1・・E,F,G,H,からAW,AX,AY,AZ迄にデータが入っています。
3           ・・行ごとに集計をしたいです。
  宜しくお願いします。

回答
投稿日時: 26/04/09 20:08:25
投稿者: sk

引用:
ID"A"から"K"迄を、右側BC6セルに集計したいです。


 
引用:
集計4列はBA_ID、BB_商品、BC_数量です。

引用:
行ごとに集計をしたいです。

で、記述内容がかみ合っていません。
 
引用:
E  F  G  H・・・4列グループここからAW,AX,AY,AZ,迄が選択範囲です。

・連続している 48 列のセル範囲を 4 列ごとに区切って
 最大 12 個の領域に分割する処理を行ごとに実行する
 (それぞれの領域を 1 つのレコードとみなす)。
 
(ある 1 件のデータ行の変換例)
---------------------------------------------------------------------------------
日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量	日付	ID	商品名	数量
4月10日	A	商品A	2	4月12日	B	商品B	1	4月13日	D	商品D	1	4月14日	A	商品B	6	4月15日	A	商品D	3	4月15日	B	商品A	1	4月15日	F	商品B	7	4月16日	F	商品B	1	4月16日	A	商品D	7	4月18日	B	商品B	2	4月19日	A	商品A	10	4月21日	D	商品H	9
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------
日付	ID	商品名	数量
4月10日	A	商品A	2
4月12日	B	商品B	1
4月13日	D	商品D	1
4月14日	A	商品B	6
4月15日	A	商品D	3
4月15日	B	商品A	1
4月15日	F	商品B	7
4月16日	F	商品B	1
4月16日	A	商品D	7
4月18日	B	商品B	2
4月19日	A	商品A	10
4月21日	D	商品H	9
---------------------------------------------------------------------------------
 
・その上で、それぞれのデータ行(に含まれる最大 12 個のレコード)ごとに
 もしくはデータ行全体(に含まれる全てのレコード)を集計対象として
 何らかの集計処理を実行した結果を( BA6 セルを始点とする範囲に)出力する。
 
今のところ挙げられているご要望の中で、私に理解できるのは以上の 2 点のみです。
 
例えば「ある 1 つのデータ行において、[ID]列と[商品名]列の値の組み合わせが
同じであるグループごとに、[数量]列の値の合計を得たい」といった場合、
上記のサンプルデータで表すと次のような結果となるはず。
 
---------------------------------------------------------------------------------
ID	商品名	数量
A	商品A	12
A	商品B	6
A	商品D	10
B	商品A	1
B	商品B	3
D	商品D	1
D	商品H	9
F	商品B	8
---------------------------------------------------------------------------------
 
以上のような集計処理を「データ行ごとに実行する」ことと
「データ行全体を集計対象として実行する」こととでは、
その意味も出力結果も異なります。
 
・実際にどのようなデータ変換処理や計算処理を行ないたいのか。
 
・それぞれの変換処理/計算処理の対象となるのは
 「個々のデータ行」と「データ行全体」のどちらなのか。
 
・最終的にどのような出力結果を得たいのか。
 
といった点について、 1 つ 1 つの計算手順を箇条書きにするなり、
求められている出力結果の具体例を挙げるなりしてご説明されることをお奨めします。

投稿日時: 26/04/09 22:17:56
投稿者: 桃太郎7

ご親切にご回答頂きましてありがとうございます。 
今回の質問の実際のレイアウトで再度説明をします。
  A  B  C  D  E  F  G・・・D,E,F,G,の4列✕11でAV,AW,AYXAY,迄が選択範囲
1 NO ID 名前  日付 ID 商品 数・・集計は名前行にAZ_ID A,BA_商品 BB_数
2 1  1  安藤 4/9 A  商品A 1・・・集計を求める AZ_IDに「A」を入力すると安藤さんの
3      伊藤             ・・ID「A]の数をBB_数に集計する。
 集計スペースはAZ:CFの範囲にAZ_ID A:CD_ID_Kを入力、行の中には複数の「A」の数をBB数欄に集計
 (C2)の安藤のデータは行に、(C3)の伊藤のデータは横に
 
  説明が上手く出来ていませんのでご迷惑をお掛けしますが宜しくご指導下さい。

回答
投稿日時: 26/04/10 11:20:55
投稿者: んなっと

今回の質問はこうでした。

引用:
質問が内容不十分でしたので再度質問させて下さい。
  A  B  C  D   E  F  G   H   I
1 NO 日付 ID 商品名 数量 日付 ID 商品名 数量
2 1  4/10 A 商品A  2 4/12 B  商品B  1 
3 2  5/1  C 商品C  3  5/15 D  商品D  1
 
4列を1グループとして12グループ
合計数量は1行目の最終列に求めたい
 グループの中が日付、”A”、商品A、数量
ID別に(A,B,C,D)数量の合計を求めたい。

上記の配置のシートを新規で作成して、数式を試しているはずです。
結果はどうでしたか?
 
あとから「実際の配置は違うんです」と書き込む前に、A列から始まる最初の配置で試すのが当然です。

回答
投稿日時: 26/04/10 16:37:45
投稿者: Suzu

半平太さんの式 理解しようとされましたか?
理解したのなら、かなりのヒントになっています。
 

=SUMIF(C:DN,{"A";"B";"C"},E1) かな?

 
今回の最初の質問文のレイアウト前提として
A6:A8 を選択した状態で、上記の式を入力後、確定時に
「CTRL」+「SHIFT」+「ENTER」とすると
 
A6 : 2
A7 : 1
A8 : 3
 
が出力されます。
 
A6 : 条件「A」の値、A7 : 条件「B」の値、A8 : 条件「C」の値 という事です。
 
A9〜A11 を選択し、A9に、={"A";"B";"C"} を入れ、「CTRL」+「SHIFT」+「ENTER」
とすると、
A9 : A、A10:B、A11:C が表示されます。
 
これは、配列数式を先に計算し、選択範囲 A9〜A11 に表示しています。
 
配列関数 だと気づかないと、
3セルを選択し、「CTRL」+「SHIFT」+「ENTER」 だと判りませんが
 
すくなくとも、これを どうやったら良いのか、判りません 等のリアクションをとれば
回答者は答えてくれます。
 
 
次に
A9〜A11を選択しDELETE(A9だけ選んでDELETEしようとしても削除できません)
 
今度は、
A9〜A11 を選択し、A9に、={"H";"G";"F"} を入れ、「CTRL」+「SHIFT」+「ENTER」
A9:H、A10:G、A11:F が表示されます。
 
さて。
文字でなく、数字を入れると。。
A9〜A10 を選択し ={1;10;100} を入れ、「CTRL」+「SHIFT」+「ENTER」
A9:1、A10:10、A11:100
 
あくまでセル選択範囲に表示なのがミソです。
=SUM({1;10;100})
今度は、ENTERのみでOK 111 が表示されます。
 
つまり、配列の中の 1 と 10 と 100 を SUM した結果が得られます。
 
 
 
戻って、
SUMIF側の引数 E1 なのは、
SUMの対象となる値 は、条件となる 位置C から 2列右 にある事を指し示します。
E、H〜 とか複数を選択しなくて良いのが 良いですね。
 
 
それを、
 
桃太郎7 さんの引用:
ご親切にご回答頂きましてありがとうございます。 
今回の質問の実際のレイアウトで再度説明をします。
  A  B  C  D  E  F  G・・・D,E,F,G,の4列✕11でAV,AW,AYXAY,迄が選択範囲
1 NO ID 名前  日付 ID 商品 数・・集計は名前行にAZ_ID A,BA_商品 BB_数
2 1  1  安藤 4/9 A  商品A 1・・・集計を求める AZ_IDに「A」を入力すると安藤さんの
3      伊藤             ・・ID「A]の数をBB_数に集計する。

 
これを解釈し
AZ2 に入れた 値により、BB2 に そのIDの値の合計を表示したい。と解釈。
 
BB2 : =SUMIF(E2:AY2,AZ2,G2)
AZ2 に A を入れれば Aを条件として集計。
AZ2 に B を入れれば Bを条件として集計。
 
となります。
 
 
さらに、先に説明した配列関数を組み合わせれば
=SUM(SUMIF(E2:AY2,{"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K"},G2))
で、2行目で IDが、A〜K までの数の合計を求める事ができます。
 
 
 
引用:
 集計スペースはAZ:CFの範囲にAZ_ID A:CD_ID_Kを入力、

これは・・・A~K の条件を AZ2〜CD2 にデータと同じ様に持っているという事?
 
1行目に A〜K を入力した方が早いし見やすいのでは?
 
引用:
 (C2)の安藤のデータは行に、(C3)の伊藤のデータは横に

これは・・意味が判らないのでスルーします。
 
 
回答にはきちんとヒントが含まれています。
それを自分の中に取り込まないで、答えを求める数式だけを求めるのであれば
自分の知識にもスキルにもなりませんし、回答者も真摯な対応はしない様になりますよ。

投稿日時: 26/04/11 08:35:36
投稿者: 桃太郎7

皆さん、いろいろとご提案を頂きましてありがとうございました。