[[20160519110038]] 『条件を指定しての抽出』(HONDA) ページの最後に飛ぶ

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

 

『条件を指定しての抽出』(HONDA)

 関数教えてください。

 別シートに、A列からE列まで日次で数値が入力されています。

    A     B     C     D     E
 1  日付    実績A   実績B   実績C   実績D
 2  2016/4/1   100    200     300    400
 3  2016/4/2   150    100     200    500

 といった感じで入力を日々行っています。
 別シート(下記参考)へ関数を使って、月ごとで最終日の数値を列ごとに
 取得したいのです。

    A     B     C     D     E
 1        4月    5月    6月     7月 
 2 実績A
 3 実績B
      

 今現在作成した関数は、B2セルへ =VLOOKUP(B1,!$A$1:$E$500,2,TRUE)
 といった感じですが、この場合だとA列には5/20までしか日付が入力されて
 いなくても、別シートの6月・7月・・・にも現在入力を行っている最終行の
 値が取得をされてしまします。

 なにかいい組み合わせの関数をご教示いただけたらと思います。
 よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 面倒なので、同じシートで。

	A	B	C	D	E	F	G	H	I	J
1	日付	実績A	実績B	実績C	実績D			4月	5月	6月
2	16/4/1	100	200	300	400		実績A	250	1	1000
3	16/4/2	150	100	200	500		実績B	300	2	2000
4	16/5/1	1	2	3	4		実績C	500	3	3000
5	16/6/1	1000	2000	3000	4000		実績D	900	4	4000
6										
7										

 H2 =SUMIFS(INDEX($B:$E,0,MATCH($G2,$B$1:$E$1,0)),$A:$A,">="&H$1,$A:$A,"<"&EDATE(H$1,1))
 範囲コピー。

 ※G列順不同 考慮
 ※H1〜 は シリアル値で入力し、各月「1日」を設定。
 
(GobGob) 2016/05/19(木) 12:53

 > 今現在作成した関数は、B2セルへ =VLOOKUP(B1,!$A$1:$E$500,2,TRUE)

 ということはB1は月末日ってこと?

 ・検索シートの1行目(4月〜)の実体は月末日(表示形式〜ユーザー定義 m"月")
 ・実績A〜実績Dの並び順は両シート同じ

 元シートがSheet1だとして

 B2 =IF(MAX(Sheet1!$A$2:$A$500)>EOMONTH(B$1,-1),VLOOKUP(B$1,Sheet1!$A$2:$E$500,ROW(B2),TRUE),"")

 実際の表はサンプルとセル番地が違っていても、ROW(B2) は変更しないように。

 右・下コピー

 とか。
(笑) 2016/05/19(木) 13:21

 上手くいきました、
 ありがとうございました。

 もうひとつご無理をいいます。
 今回に関数でエラー表示を非表示にしたいのですが、上手くいきません。
 B2 =IF(MAX(Sheet1!$A$2:$A$500)>EOMONTH(B$1,-1),VLOOKUP(B$1,Sheet1!$A$2:$E$500,ROW(B2),TRUE),"")

 ご教示ください。

(HONDA) 2016/05/19(木) 22:13


 あー。また勘違いしてたね。。。

 =IFERROR(IF(MAX(Sheet1!$A$2:$A$500)>EOMONTH(B$1,-1),VLOOKUP(B$1,Sheet1!$A$2:$E$500,ROW(B2),TRUE),""),"")
 
(GobGob) 2016/05/20(金) 07:59

 エラーとは?
 どんな場合に出る、何というエラーのことですか?

 元シートが4月から始まらず、いきなり5月から始まるとか、そういうこと?

 必ずお答え下さい。
(笑) 2016/05/20(金) 09:28

コメント返信:

[ 一覧(最新更新順) ]


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