- 締切済み
【Excel】データの検索、抽出について
教えてください! 以下のような表があります。 日付 Data 4月1日 2 4月2日 4月3日 34 4月4日 4月5日 4 4月6日 4月7日 34 4月8日 4月9日 4 4月10日 4月11日 4 4月12日 4月13日 4 4月14日 4月15日 4月16日 4月17日 4月18日 ・ ・ ・ 日付が一番新しくて、尚かつその隣にデータが存在する日付と データを抽出したいと考えています。 (別途抽出用のセルがあります) 関数でおこなってみたのですが、なかなか出来ず マクロでもかまいませんので何か良い方法を教えてください◎
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mshr1962
- ベストアンサー率39% (7417/18945)
#2のmshr1962です。 >ちなみにこの数式の意味を教えていただいてもよろしいですか? =INDEX(A:A,MATCH(MAX(B:B)+1,B:B),0) INDEX(範囲,行位置,列位置) で範囲内の行位置、列位置のセルの値を表示します。 MATCH(検索値,範囲) で範囲内での検索値の位置を検索します。 MAX(範囲) で範囲内の最大値を抽出します。 上記の関数では MATCH関数でB列の数値の最大値に1を加えたもの(存在しない最大数値)を検索することで 最後に数値の入力された行位置を検索して、INDEX関数でA列の同じ行位置の値を表示させています。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
データの入力されている範囲がA2:B31の時 隣にデータが存在する一番新しい日付 C2 =MAX(IF(NOT(ISBLANK(B2:B31)),A2:A31,0)) をSHIFT+CTRL+ENTER(配列数式)で入力 D2 =INDEX(A2:B31,MATCH(C2,A2:A31,0),2)
- EL-SUR
- ベストアンサー率76% (83/108)
範囲がA2:B100で日付が昇順なら ■ A列の日付 =LOOKUP(1,0/(B2:B100<>""),A2:A100) ■ B列のデータ(数値なら) =LOOKUP(MAX(B2:B100)+1,B2:B100) または =LOOKUP(10^9,B2:B100)
- mshr1962
- ベストアンサー率39% (7417/18945)
データが数値の場合で日付が昇順でなければ駄目ですが =INDEX(A:A,MATCH(MAX(B:B)+1,B:B),0)
- sanori
- ベストアンサー率48% (5664/11798)
(データの列がB1以下だとして) その隣の列のC1に =if(B1="","","あり") って書いて、 これを、C2以下に、ずらーっとコピーすると、 データがあるところに「あり」って出ますから、 データ → 並び替え で 最優先をC列、2番目の優先をA列(降順)にして、ソートしてみてはいかがですか?
お礼
回答いただき、どうもありがとうございました。
補足
出来ました!! ちなみにこの数式の意味を教えていただいてもよろしいですか?