[[20160927095539]] 『日付が最新の隣のセルを抽出する』(りゅう) ページの最後に飛ぶ

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

 

『日付が最新の隣のセルを抽出する』(りゅう)

お世話になります。

A    B   C    
日付  項目1 項目2
4/1      ○○
4/3   □□
4/5      △

上の様な表を作成しています。
日付が最新な日の項目1,2を抽出したいと思っています。
項目1なら□□を、項目2なら△を抽出したいです。

日付をMAX関数で、あとはVLOOLUPとIF関数かな?くらいに思っていますが全然進みません。エラーばかりです。

ご協力いただけるとありがたいです。
よろしくお願いします。

< 使用 Excel:Excel2008(Mac)、使用 OS:unknown >


 	A	B	C	D	E	F
 1	日付	項目1	項目2		項目1	項目2
 2	4月1日		○○			
 3	4月3日	□□				
 4	4月5日		△			

 E2 =IFERROR(INDEX(B2:B1001,MATCH("ー",B2:B1001)),"")
 右方向にコピー
(bi) 2016/09/27(火) 10:10 修正→10:11

 項目が文字列ならば
 =IFERROR(LOOKUP("ー",B:B),"")
 ではどうか。

 数値の場合は
 =IFERROR(LOOKUP(10^16,B:B),"") 

 数値のセル、文字列のセル両方ある場合は
 =IFERROR(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)),"")
 で。
(ねむねむ) 2016/09/27(火) 10:30

 =SUBSTITUTE(LOOKUP(1,0/(B:B<>""),B:B),E$1,"")
 
(GobGob) 2016/09/27(火) 10:39

さっそくご回答いただきありがとうございます。
biさん・ねむねむさん
お二人から頂いたものをとりあえずコピーしてみましたが空欄になってしまいます。

GobGobさん
関数の意味が全くわからないです。
自分の力量が足らずすいません。
なぜEが出てくるのですか?
(りゅう) 2016/09/27(火) 10:55


 B:C列、なにもデータなしなら、B1:C1を返すんで、それを空白にしてま。
 (biさんレイアウトつかわさせてもらってます)
 
(GobGob) 2016/09/27(火) 11:16

 空白セルに式で""が入っていないか?

 その場合は
 =IFERROR(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)),"")
 のほうを試してみてくれ。
 (MATCH関数やLOOKUP関数では""も文字列とみなすため)

(ねむねむ) 2016/09/27(火) 11:22


皆さまありがとうございました。

解決いたしました。
(りゅう) 2016/09/27(火) 15:04


皆様すいません。再度質問させてください。

以前の質問させていただいた件はねむねむさんの式で

 =IFERROR(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)),"")を使用させていただいて条件の抽出は完了したかと思っていました。
しかし、2行目以降を入力すると更新していない列が空白で抽出されてしましました。
各データは他シートから引っ張っているので、IFERROR関数が入っています。これが原因でしょうか?
(りゅう) 2016/10/05(水) 07:57

 そのデータ部分のIFERROR関数の式が
 =IFERROR(式,"")
 ではなく
 IFERROR(式," ")
 と空白ではなくスペース文字になってたりはしないだろうか?
(ねむねむ) 2016/10/05(水) 09:15

ねむねむさんありがとうございます。
確認しましたが、""でスペースは入れていません。
(りゅう) 2016/10/05(水) 09:38

 =INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1))
 とした場合、空白になるかエラーになるかどちらだろうか?
 また、エラーになる場合、そのエラーは何か?

(ねむねむ) 2016/10/05(水) 09:44


空白になります。
(りゅう) 2016/10/05(水) 10:17

 >空白になります。
 すまないがこれも試してみてくれ。

 =LEN(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)))
 でなんと表示されるか。

 また、
 =CODE(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)))
 ではなんと表示されるか。
(ねむねむ) 2016/10/05(水) 10:21

 >=LEN(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)))
 でなんと表示されるか。

1でした。

また、
 =CODE(INDEX(B:B,MATCH(1,INDEX(0/(B:B<>""),0),1)))
 ではなんと表示されるか。

48と表示されます。
(りゅう) 2016/10/05(水) 10:31


 LEN関数で1、CODE関数で48ということはそのセルに「0」一文字が入っているということになる。

 Excelのオプションか表示形式、条件付き書式で0を非表示にしていないか?

 もし、0のセルは無視していいのであれば
 =IFERROR(INDEX(B:B,MATCH(1,INDEX(0/((B:B<>"")*(B:B<>0)),0),1)),"")
 ではどうか。

 あるいはデータを引っ張っている式を

 =IF(式="","",式)
 とするか。
(ねむねむ) 2016/10/05(水) 10:38

条件付き書式…0を表示しないにしてました。

無事解決しました。ねむねむさんありがとうございます。
(りゅう) 2016/10/05(水) 13:04


コメント返信:

[ 一覧(最新更新順) ]


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