[[20071107170818]] 『同じ地域のものを抽出して合算』(文) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同じ地域のものを抽出して合算』(文)OS:WindowsXP,Excel2003

 はじめまして、どうしてもうまくいきません。助けてください。

	[A]	[B]	[C]	[D]	[E]	[F]	[F]	[F]
[1]	首都圏	予算	実績	比	関西	予算	実績	比
[2]	経費1	1000	1500	150%	経費1	1200	1000	83%
[3]	経費2	  			経費2
[4]	経費3				経費3			
[5]	合計				合計
[6]
[7]	関西	予算	実績	比	東海	予算	実績	比
[8]	経費1	1000	1500	150%	経費1	1200	1000	83%
[9]	経費2	  			経費2
[10]	経費3				経費3
[11]	合計				合計

 A1:D5で一つとするデータが縦横に4つずつ、合計16個あります。
 それぞれ地域ごと(首都圏、関西、東海)に
 それぞれの合計(経費1、経費2、経費3、合計)を出したいのですが
 どのような数式を入れればよいでしょうか?

 地域は首都圏、関西、東海、九州と4種類と決まっているのですが
 16個の中にバラバラに入っており、規則性はありません。

 ちなみに合計欄は下の方にA1:D5同様の形式でそこに収めたいのです。

 ご教授お願いします。

 ムリムリですが・・・
データ範囲:A1:P23(下の空白行までとすると、P24)
合計欄(1エリア)範囲:A26:D30
とすると、
B27セルに
=SUMPRODUCT(($A$1:$M$19=$A$26)*(B$1:N$19=B$26)*($A2:$M20=$A27)*IF(ISNUMBER(B2:N20),B2:N20,0))
として、CtrlとShiftとEnterを一緒に押して、配列数式として確定。
これを該当範囲にコピー。但し、比率は、数式を入力して下さい。
 多分答えが求まると思います。

 ただし、もっと広範囲の場合は、EXCEL君が職場放棄する事も考えられます。

 せめて、↓こんな感じの入力データなら、EXCEL君も働く気になるかも???
 区分	エリア	経費区分	予算	実績	比
  1	首都圏	経費1	1000	1500	150%
  1	首都圏	経費2			
  1	首都圏	経費3			
  2	関西	経費1	1200	1000	83%
  2	関西	経費2			
  2	関西	経費3		
(sin)	


sin様、回答ありがとうございます。
 早速やってみたのですが、結果が#N/Aと出てしまいます。
 実は、例は簡単にしたものであって
 実際は一つとするデータは縦項目が20、横項目は8あり(A1:H20)
 16個分あるとかなり広範囲になります。

 提案のようなデータに変換できればいいのですが、
 このフォーマットは会社で決まっており、変更できません。

 やはり自分で地域を拾って足していくしかないのでしょうか。。。

 こんにちは〜♪

 失礼しま〜す。。。

 >実際は一つとするデータは縦項目が20、横項目は8あり(A1:H20)
 >16個分あるとかなり広範囲になります。

 実際の表がよく理解できませんので。。
 例題の場合です。。。

 ┌─┬────┬────┬────┬────┬────┬────┬────┬────┬───────┬───────┐
│  │   A    │   B    │   C    │   D    │   E    │   F    │   G    │   H    │      I       │      J       │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 1│首都圏  │予算    │実績    │比      │関西    │予算    │実績    │比      │首都圏首都圏  │関西関西      │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 2│経費1   │    1000│    1500│    150%│経費1   │    1200│    1000│     83%│首都圏経費1   │関西経費1     │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 3│経費2   │      │        │        │経費2   │    2200│        │        │首都圏経費2   │関西経費2     │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 4│経費3   │        │        │        │経費3   │    3200│        │        │首都圏経費3   │関西経費3     │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 5│合計    │        │        │        │合計    │    6600│        │        │首都圏合計    │関西合計      │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 6│        │        │        │        │        │        │        │        │首都圏        │関西          │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 7│関西    │予算    │実績    │比      │東海    │予算    │実績    │比      │関西関西      │東海東海      │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 8│経費1   │    1000│    1500│    150%│経費1   │    1200│    1000│     83%│関西経費1     │東海経費1     │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│ 9│経費2   │    2000│        │        │経費2   │        │        │        │関西経費2     │東海経費2     │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│10│経費3   │    3000│        │        │経費3   │        │        │        │関西経費3     │東海経費3     │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│11│合計    │    6000│        │        │合計    │        │        │        │関西合計      │東海合計      │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│12│        │        │        │        │        │        │        │        │関西          │東海          │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│13│        │        │        │        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│14│        │        │        │        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│15│        │        │        │        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│16│首都圏  │予算    │実績    │比      │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│17│経費1   │    1000│    1500│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│18│経費2   │       0│       0│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│19│経費3   │       0│       0│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│20│合計    │       0│       0│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│21│        │        │        │        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│22│関西    │予算    │実績    │比      │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│23│経費1   │    2200│    2500│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│24│経費2   │    4200│       0│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│25│経費3   │    6200│       0│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│26│合計    │   12600│       0│        │        │        │        │        │              │              │
├─┼────┼────┼────┼────┼────┼────┼────┼────┼───────┼───────┤
│27│        │        │        │        │        │        │        │        │              │              │
└─┴────┴────┴────┴────┴────┴────┴────┴────┴───────┴───────┘

 ★作業列を使う方法ですが。。。
 作業列その1
 I列の
 I1セルへ
 =INDEX(A:A,INT(ROW(A6)/6)*6-5)&A1

 作業列その2
 J列の
 J1セルへ
 =INDEX(E:E,INT(ROW(A6)/6)*6-5)&E1

 それぞれ下にコピー。。。

 ★集計表で首都圏の合計の場合。。

 SUMIF関数を使ってみました。。。
 B17セルへ
 =SUMIF($I:$I,INDEX($A:$A,INT(ROW(A6)/6)*6-5+15)&$A17,B:B)+
SUMIF($J:$J,INDEX($A:$A,INT(ROW(A6)/6)*6-5+15)&$A17,F:F)

 右下へコピー。。

 ★関西の合計の場合。。
 B23セルへ
 =SUMIF($I:$I,INDEX($A:$A,INT(ROW(A6)/6)*6-5+21)&$A17,B:B)+
SUMIF($J:$J,INDEX($A:$A,INT(ROW(A6)/6)*6-5+21)&$A17,F:F)

 右下へコピー。。。

 ★比率は、別に式を入れて下さいネ!!。。。

 ご参考にどうぞ。。。

 。。。。Ms.Rin〜♪


 さすが、Ms.Rin〜♪さん。柔らかいですね。私は固すぎ。。。
文さんの実際のデータは、A1:AF80ぐらいでしょうから、AH:AK列を作業列にし各列をSUMIFで足せばよい事になりますね?

 ところで、 >結果が#N/Aと出てしまいます。  の件ですが、
シート内のどこかに#N/A値があると思います。
シート全体を選択し、【編集】-【ジャンプ】-『セル選択』をクリックし、
「数式」にチェック、「エラー値」のみをチェックし、OKで、#N/Aのセルが発見できると思われます。
(数式の結果であれば ですが)

 ちなみに、私の書き込んだ数式を実範囲に置き換えると、
=SUMPRODUCT(($A$1:$Y$64=$A$86)*(B$1:Z$64=B$86)*($A2:$Y65=$A87)*IF(ISNUMBER(B2:Z65),B2:Z65,0))
こんな数式になります。 ※範囲や見出しが不明なので適当に作ったデータ表ですが・・・
 ついでに、実データをこんな感じ(上の例)のフォームに置き換える方法なんぞを考えてみましたが、
Ms.Rin〜♪の方法を使えば不必要なので、UPしません(人に見せられるものでない。 が本音ですが・・・)。
(sin)

 反応が遅くて申し訳ありません。
 お二方とも、本当にありがとうございます。

sin様の数式ですが、エラー値を消したところ0表示となりました。

 実は、地方名の下に日付が入っているのですが、これが影響しているのでしょうか?
 実際のところ、下記のようになっております。
 何度も言うたびに形式が代わり、申し訳ありません。

	[A]	[B]	〜	[H]	[I]	[J]	[K]	〜	[Q]	[R]	[S]〜一番端は[AI]
[1]	首都圏	部署名				首都圏	部署名				東海
[2]	日付	予算	実績	比		日付	予算	実績	比		日付
[3]	経費1	1000	1500	150%		経費1	1200	1000	83%		経費1
	経費2	  				経費2
|	経費3					経費3			
[24]	合計					合計
[25]
[26]	関西	部署名				東海	部署名
	日付	予算	実績	比		日付	予算	実績	比
|	経費1	1000	1500	150%		経費1	1200	1000	83%
	経費2	  				経費2
	経費3					経費3			
[49]	合計					合計


 データの一番下は[99]

 合計欄はA101:Z124に作りたいと思います。

 上記のシートの場合、sin様の数式を当てはめると
 =SUMPRODUCT(($A$1:$AB$76=$A$102)*(B$1:AC$76=B$102)*($A2:$AB77=$A103)*IF(ISNUMBER(B2:AC77),B2:AC77,0))

 でよろしいでしょうか?エクセルをはじめたばかりで不安なのですが…。
 SUMPRODUCTのくだりはなんとなく理解できますが
 IF以下が何のために入れてあるのか良く理解できません。

 =SUMPRODUCT((検索範囲=首都圏)*(検索範囲=予算)*(検索範囲=経費1)*IF(ISNUMBER(?),?,0))

 ↑IFまでの認識は上記であっていますでしょうか?
 無知で申し訳ありません。

Ms.Rin〜♪様

 ご回答ありがとうございます。

 作業列は上記の表の場合
 =INDEX(A:A,INT(ROW(A25)/25)*25-24)&A1  
 と、なるとまでは
 どうにかたどり着いたのですが(合っているかは不安ですが)

 =SUMIF($I:$I,INDEX($A:$A,INT(ROW(A6)/6)*6-5+15)&$A17,B:B)+
SUMIF($J:$J,INDEX($A:$A,INT(ROW(A6)/6)*6-5+15)&$A17,F:F)

 この数式が理解できません。
 作業列をAK:ANに作ったとして

 =SUMIF($AK:$AK,INDEX($A:$A,INT(ROW(A25)/25)*25-24+15)&$A17,B:B)+
 SUMIF($AL:$AL,INDEX($A:$A,INT(ROW(A25)/25)*25-24+15)&$A17,K:K)+
 SUMIF($AM:$AM,INDEX($A:$A,INT(ROW(A25)/25)*25-24+15)&$A17,T:T)+
 SUMIF($AN:$AN,INDEX($A:$A,INT(ROW(A25)/25)*25-24+15)&$A17,AC:AC)

 では、数値は全て0になってしまいました。
 ところで途中の+15は何を意味しているのでしょうか?

 分からない尽くしで、本当に申し訳ありません。

 式の作り方はあっていると思います。(A102セルに 首都圏 が入っているなら)
 >0表示となりました。
上でも書いてますが、CtrlとShiftとEnterを一緒に押して、配列数式として確定。されてますか?

 >IF(ISNUMBER(B2:AC77),B2:AC77,0))
B2:AC77のセルが数値ならば、その数値を、違う場合は、0 にしなさい。です。
この各を有効にするために、配列数式としてます。
理由:B2:AC77だけだと、範囲の中にある文字列が、SUMPRODUCT関数による配列の計算上邪魔になるため。
自分の書き込みに関してだけで申し訳ありませんが・・・
(sin) ちょっと、忙しくなりかけ なので・・・

 sin様 お忙しいところ、親切な解説ありがとうございます。
 首都圏はA101に入ってました。
 訂正をして、配列数式として確定しましたが、やはり結果は0になります。

 数値以外を0にするとあったので、入力されている数字の書式をみたら通貨になっておりました。
 数字は全て数値に直しましたが…結果は0。

 いったい何がいけないのでしょうか…。
 急いでおりませんので、お暇な際にでもお答えくださるとうれしいです。
 (文)

 ふたたび〜です。。。♪

 8列づつが、4つですネ!!
 でしたら。。
 作業列を4つ作らないといけませんね。。。

 >一番端は[AI]

 なので、AJ列〜AM列まで作業列を作ります。。

 ★作業列の作成
 AJ1セルへ
 =INDEX($A:$AI,1,COLUMN(B1)*9-17)&INDEX($A:$AI,ROW(A25)/25*25-24,COLUMN(B1)*9-17)

 右へAM列まで、下は、99行目までコピーします。。。

 ★集計表は、以下の様な感じでしょうか。。。?

 	A	B	C	D	E  F  G	 H  I 	J	K	L	M	
[101]	首都圏	部署名					関西				
[102]		予算	実績	比				予算	実績	比	
[103]	経費1	3001	6010				経費1				
[104]	経費2	4002	0				経費2				
[105]	経費3	6003	0				経費3				
[106]	経費4	0	0				経費4				
[107]	経費5	0	0				経費5				
[108]	経費6	0	0				経費6				
[109]	経費7	0	0				経費7				
[110]	経費8	0	0				経費8				
[111]	経費9	0	0				経費9				
[112]	経費10	0	0				経費10				
[113]	経費11	0	0				経費11				
[114]	経費12	0	0				経費12				
[115]	経費13	0	0				経費13				
[116]	経費14	0	0				経費14				
[117]	経費15	0	0				経費15				
[118]	経費16	0	0				経費16				
[119]	経費17	0	0				経費17				
[120]	経費18	0	0				経費18				
[121]	経費19	0	0				経費19				
[122]	経費20	0	0				経費20				
[123]	経費21	0	0				経費21				
[124]	合計	13006	0	

 ★首都圏の場合
 B103セルへ
 =SUMIF($AJ:$AJ,$A$101&$A103,B:B)+
SUMIF($AK:$AK,$A$101&$A103,K:K)+
SUMIF($AL:$AL,$A$101&$A103,T:T)+
SUMIF($AM:$AM,$A$101&$A103,AC:AC)

 右と下へコピーして下さい。。。。

 **合計値や、経費の項目は適当に入れました。。。

 ふたたび〜、ご参考にどうぞ。。。

 Ms.Rin〜♪♪


 あっと!!! レイアウトが違っているのに気付いてなかった。。。
こっち↓だと出ますか?
 =SUMPRODUCT(($A$1:$AB$76=$A$101)*(B$2:AC$77=B$102)*($A3:$AB78=$A103)*IF(ISNUMBER(B3:AC78),B3:AC78,0))
$A$1:$AB$76 ===『首都圏』が入っているセルの左上から右下の範囲
B$2:AC$77 =====『予算』    〃
$A3:$AB78 =====『経費1』    〃
B3:AC78 =======「予算」と「経費1」が交わるセルの左上から右下の範囲
が、範囲設定の意味です。
各範囲は、行・列数が同じになってます。それぞれの範囲の行列位置が同じ各セル同士が、
$A$101,B$102,$A103と同じ場合(TRUE*TRUE*TRUE=1)とB3:AC78範囲の数値(IF関数による、元数値か0)を
掛け算し、全範囲分を合計する。 という計算です。
(sin)


 Rinで〜す。。。♪

 sinさんと答が、違っていたので検証したら
 私の作業列の式が違っていました〜♪

 AK〜KN列を作業列にするのでしたら
 AK1セルへ

 =INDEX($A:$AI,INT(ROW(A25)/25)*25-24,COLUMN(B1)*9-17)&INDEX($A:$AI,ROW(A1),COLUMN(B1)*9-17)

 右下コピー。。。

 ★首都圏の場合
 B103セルへ
 =SUMIF($AK:$AK,$A$101&$A103,B:B)+
SUMIF($AL:$AL,$A$101&$A103,K:K)+
SUMIF($AM:$AM,$A$101&$A103,T:T)+
SUMIF($AN:$AN,$A$101&$A103,AC:AC)

 右下コピーです。。。

 sinさんへ
 いつも勉強させて頂いていま〜す。。。♪

 >Ms.Rin〜♪さん。柔らかいですね。私は固すぎ。。。

 そんなことは、ないですヨ〜。。。
 普通でしたら、sinさんの様な式をアップするところです。。。

 配列関数 & 配列数式は、sinさんも書かれているように

 >ただし、もっと広範囲の場合は、EXCEL君が職場放棄する事も考えられます。

 なので、止めたんですが。それほど重くないみたいですね。

 SUMIFに、こだわってみましたけれど。。。
 私の作業列の式は、4列あるので1つにしたら結構長くなってしまいましたし。。。
 式も難しくなってしまいました。。

 あまり、作業列を使った意味がなかったみたいです。。

 今回位のデータ数でしたら、sinさんの回答が良いですね。。

 失礼しました〜。。。Ms.Rin〜♪


ありがとうございます〜〜〜!!!

 無事完成する事が出来ました!!

 まずはsin様
 出来ました〜〜〜〜!!!!
 sin様の数式をそのまま貼ったらそのまま出来ました!
 画面が見えてないのにズバリ作れる才能に脱帽です。
 本当にありがとうございます〜〜〜!!!!!

 4つの()の中のセル数が同じでないといけないのですね。
 とても分かりやすい説明ありがとうございました。

 そしてMs.Rin〜♪様
 何度もありがとうございます。
 こちらでも出来ました!!
 作業列マスターすれば、今後いろんなことに使えそうですね!

 これを機にエクセルの勉強を始めようと思います。
 お二方とも、本当にありがとうございました。

 (文)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.