• 締切済み

【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日 ・ ・ ・ 日付が一番新しくて、尚かつその隣にデータが存在する日付と データを抽出したいと考えています。 (別途抽出用のセルがあります) 関数でおこなってみたのですが、なかなか出来ず マクロでもかまいませんので何か良い方法を教えてください◎

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

#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)
回答No.4

データの入力されている範囲が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)
回答No.3

範囲が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)
回答No.2

データが数値の場合で日付が昇順でなければ駄目ですが =INDEX(A:A,MATCH(MAX(B:B)+1,B:B),0)

froma_a
質問者

補足

出来ました!! ちなみにこの数式の意味を教えていただいてもよろしいですか?

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.1

(データの列がB1以下だとして) その隣の列のC1に =if(B1="","","あり") って書いて、 これを、C2以下に、ずらーっとコピーすると、 データがあるところに「あり」って出ますから、 データ → 並び替え で 最優先をC列、2番目の優先をA列(降順)にして、ソートしてみてはいかがですか?

froma_a
質問者

お礼

回答いただき、どうもありがとうございました。

関連するQ&A