• ベストアンサー

エクセル該当数値のみ抽出

エクセル初心者ですが、 仕事の都合上、資料を完成させないといけないのですがわからないことがあり困っています。 データがセルごとに 日 時間 値段 となっていて 日ごとに最も高かった値段を抽出して、またそれが何時だったか しらべるのに使えそうな関数か手法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! すでに回答は出ていますが・・・ 他の方法の一例です。 参考になるかどうか分かりませんけど、 SUBTOTAL関数を使用しています。 ↓の画像で C10セルに =SUBTOTAL(4,C2:C7) A10セルに =IF($C$10="","",INDEX(A$2:A$7,MATCH($C$10,$C$2:$C$7,0))) という数式を入れて B10セルまでオートフィルでコピーしています。 (尚、セルの書式設定で表示形式はA10は日付・B10は時刻にしておきます) 以上でオートフィルタで目的の日付を抽出すると その日の時刻と最大値が表示されるはずです。 (もし最大値が複数 同一日にある場合、上位の行が優先されます) 余談ですが、SUBTOTAL関数の集計方法で 4 は「最大値」 9 は合計等  他にも集計方法は色々あります。 参考になれば幸いですが、 この方法の場合は日付を抽出するたびに表示されたものを コピー&ペーストしなければ、記録として残らないので 希望される方法とは少し異なるかもしれませんね。 どうも長々と失礼しました。m(__)m

その他の回答 (4)

回答No.5

小難しい関数を使わずに地道に手作業でやるならこんな感じでしょうか。 (1)データ全体を、「日」を第1キー、値段を第2キーにして昇順でソート。 (2)「値段」の右隣(セルD2)に「=IF(A2=A3,1,0)」としてデータのある行までコピペ。    (これで、各日の最大値のある行に0が設定される) (3)D列をコピー・値貼り付け。 (4)AーD列を選択してD列をキーにして昇順ソート。 以上で、日ごとの最高値の行が上部にまとまって表示されます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

解答2です。 作業列が目障りでしたら列を非表示すればよいでしょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

やや複雑になりますが次のようにしてはどうでしょう。 問題は最も高い値段がある一つの時間であればよいのですが、複数回見られる場合です。 A1セルには日付と入力し2行目から下方に日付を入力するわけですが、通常は日付が変わった時点で入力するのみで、同じ日付の場合には空白のままになる場合が多いでしょう。本当は空白のセルを作らないのがよいのですが。 B1セルには時刻と入力し、下方には9:00のように入力します。 C1セルには値段と入力し、下方には1000のように入力します。 そこで、いくつかの作業列を用意します。 D1セルには日付再表示とでも入力し、D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(A2<>"",A2,D1)) E1セルにはランクとでも入力し、E2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(D2="","",RANK(C2,INDIRECT("C"&MATCH(D2,D:D,0)&":C"&COUNTIF(D:D,D2)+MATCH(D2,D:D,0)),0)) F1セルには表示順とか入力し、F2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(OR(E2="",E2<>1),"",MAX(F$1:F1)+1) ここまでそろったところで希望の表を作るわけですが、そのためにはたとえばH1セルには日付とでの入力しH2セルには次の式を入力します。 =IF(COUNTIF($F:$F,ROW(A1))=0,"",INDIRECT("D"&MATCH(ROW(A1),$F:$F,0))) I1セルには時刻とでも入力しI2セルには次の式を入力します。 =IF(COUNTIF($F:$F,ROW(B1))=0,"",INDIRECT("B"&MATCH(ROW(B1),$F:$F,0))) J1セルには最高値段とでも入力し、J2セルには次の式を入力します。 =IF(COUNTIF($F:$F,ROW(C1))=0,"",INDIRECT("C"&MATCH(ROW(C1),$F:$F,0))) 最後にH2からJ2セルを選んで下方にオートフィルドラッグします。 H列はセルの表示形式を日付から、I列では時刻から設定します。 以上でHからJ列には日ごとでの最高値段とその時刻が表示されます。 一度、このマニュアルに沿って試験してみてください。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

ピボットテーブル これが一番簡単なんですけど、関数の方が良いですか? ピボットテーブルを使ったことがないのでしたら、こちらのサイトを参考にしてみてください  http://www11.plala.or.jp/koma_Excel/pivot_menu.html

関連するQ&A

  • エクセルで範囲のある数値に該当するデータを抽出

    エクセルにて  0以上 5未満 A  5以上10未満 B 10以上22未満 C・・・ というように、条件となる数値に範囲があるデータを抽出したいです。 IF関数の場合ネスト制限があるため全てのデータ抽出が行えません。 VLOOKUP関数で条件となる数値に範囲がある場合でもデータ抽出可能なんでしょうか? 適切な言葉が分からないので、上手く説明出来ているか分かりませんが、どなたかいい方法ありましたら、教えてください。

  • エクセルを用いてデータを抽出したい

    エクセルについて教えて下さい。 資料を添付したのですが、1年分のデータを用い、1日の特定の期間の中で、最高と最低の数値を出したいと考えています。 特定の期間というのは、(1)9:00~11:00 (2)12:30~15:10の二つの期間です。 最終的には、下記のような表を作成したいと考えています。 日にち  9:00~11:00  12:30~15:10      最高    最低    最高    最低 1月2日  8950  8000  9000  7500 1月3日  9000  8500  9500  6500 1月4日  9500  7500  8000  6000   データは1年分あり、データが膨大にありすぎて、どのような形で行えば一番簡単にデータを抽出できるか悩んでいます。当方、c言語などの知識はないので、エクセルの関数を使ってデータを抽出したいのですが、なにか良い方法があればご教授ください。

  • 表形式のデータから該当データを抽出する方法

     表形式のデータから該当データを抽出する方法を教えていただきたく存じます。  次のような表形式のデータがあるとします。    A  B  C あ  1  3  5 い  2  4  6  そして、「あ」と「A」の時には1、「い」と「B」の時には4というようなデータを抽出したく存じます。  私の考えた方法は、hlookup関数とvlookup関数を組み合わせる手法ですが、他に方法はありますでしょうか。

  • 【エクセル】年月日の抽出

    【エクセル】年月日の抽出 エクセルにて、行ラベル日付・列ラベル価格のピポットテーブルを作成したいのですが、 元になるCSVファイルの日付データが、【2009/12/28/ 22:52】と日時表記になっているため うまくいきません・・・。 年月日のみ抽出しようと、他セルに=LEFT(セル番号,10)と入力したのですが、 【40175.9528】とシリアル値が出てきてしまいました。 どのようにすれば、【2009/12/28】のみを抽出できるのでしょうか。 エクセル初心者のため、説明がうまくできず申し訳ございません。 分かりにくい点あるかと思いますので、ご指摘ください。 よろしくお願いいたします。

  • エクセルマクロで日本語を抽出して転記する方法

    お世話になります。    単一セル内に英文+訳文といったデータがある場合に、同一行の隣のセルに訳文のみ転記するマクロを教えていただきたいのですが。完成形としては、当初のセルに英文のみ、右隣のセルに訳文のみといったものを想定しています。    マクロが組めなければ関数でと考えましたが、データが大量になると自動計算が不可避で(たとえば手動計算にしても保存時等)時間がかかることから、マクロでと考えました。    マクロは初心者ですが、簡単なものでしたら組めますが(今回も、ダブルクリック対応とか、()内の文字列を削除するとかはできました>)、抽出がうまく行きません。    お手数をおかけしますが、よろしくご教示下さい。

  • Excelのセルのデータ:年月日時間分→年月日抽出処理

    Excelのセルのデータ:年月日時間分→年月日抽出処理 2006/6/13 16:53という年月日時間分から2006/6/13という値だけを取り出す方法、 関数などを教えてください。 もちろん単なる表示だけを変えるならセルのプロパティで選択すればいいのですがフィルタ機能等で抽出を行うため予めデータを直しておきたいのです。

  • Excel2000での数値の抽出について教えて下さい。

    どうかご教示下さい。(過去質問を眺めましたが、不慣れな為よくわかりませんでした) Excel2000で桁数の不揃いな数値が入力されています。(1桁-10桁) それを別のセルに分解して抽出したいです。 たとえば、 A1セルに"12345"と入力されている数値に対して、 A2には万の位の"1"を、A3には千の位の"2"を、A4には百の位の"3"をと言った具合です。 桁数が不揃いの為、MID関数がうまく出来ませんでした。 小生まだまだ初心者です。以上よろしくお願いします。

  • EXCELで再遅時間を抽出する

    エクセルの表において、該当の日付の中から、一番遅い時間を抽出したいのです。再早時間は同じような質問内容の「再早時間の抽出」から関数をコピーして抽出することはできました。 =IF(ISNUMBER(1/DAY($C20)),IF(COUNTIF($A:$A,"<"&INT($C20)+1)-COUNTIF($A:$A,"<"&INT($C20))>0,MOD(SMALL($A:$A,COUNTIF($A:$A,"<"&INT($C20))+1),1),""),"") 上記の関数と逆で再遅時間を抽出する関数を教えていただきたいです。 具体的には↓のような資料で作成しています。

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • エクセル関数でデーターベースから値を抽出するには・・・

     エクセル関数のDGETはデータベースから1つの値を抽出しますよね。でも条件を満たす値が複数ある時には「#NUM」が返されて抽出出来ない。条件を満たす値を複数返すような関数は無いのでしょうか ?   住所、氏名、年齢、職業、のデータの中で「"東京*"」にすむ人の名前を抽出しなさい。「"東京*"」に住んでいる人がいない場合は空白セルを返すようにする、と言った内容です。   どなたか教えて下さい。

専門家に質問してみよう