• ベストアンサー

EXCEL関数でフィルタの様にデータ抽出したい

以下のサイトで http://okwave.jp/qa/q6674262.html ベストアンサーに選ばれている方法だと古いものから順に抽出されるのですが、新しいものから古い方へ抽出させるにはどうすればよいのでしょうか? small関数をlarge関数に変えたり、×1000を1/1000にしたりしたのですが、上手く行きません。 ご教示下さい。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>ベストアンサーに選ばれている方法だと古いものから順に抽出されるのですが、新しいものから古い方へ抽出させるにはどうすればよいのでしょうか? 提示のリンクでは下記の数式で行番号の小さい順に抽出していますので最小の修正ではSMALL関数をLARGE関数に代えて演算式を整理すると次の数式になります。 =INDEX(データ!A:A,SMALL(INDEX((データ!$B$1:$B$100<>$B$2)*1000+ROW(A$1:A$100),),ROW(A1)))&""        ↓ =INDEX(データ!A:A,LARGE(INDEX((データ!$B$1:$B$100=$B$2)*ROW(A$1:A$100),,1),ROW(A1)),1) 解説 小さい順に抽出するときでも次のような考え方をしたいのですが、除外すべき行番号が0になりますのでSMALL関数で抽出するには不都合が起り正しい抽出ができません。 =INDEX(データ!A:A,SMALL(INDEX((データ!$B$1:$B$100=$B$2)*ROW(A$1:A$100),,1),ROW(A1)),1) それを避けるために除外すべき行番号に大きな値を加算して小さい値から順に抽出する方法を考えたものと思われます。 =INDEX(データ!A:A,SMALL(INDEX((データ!$B$1:$B$100<>$B$2)*1000+ROW(A$1:A$100),),ROW(A1)))&""

Siam0710
質問者

お礼

明快なご回答ありがとうございました。smallをlargeにするだけではいけないのですね。ばっちり抽出できました。なぜだめだったのか、独学してみます。ありがとうございました。

その他の回答 (4)

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

No.2・3です。 たびたびごめんなさい。 今までの回答は無視してください。 単にデータを下から上に並び替えていただけです。 もう一度画像をアップします。 今回は作業用の列を設けていますので、配列数式にしなくて大丈夫です。 ↓の画像でSheet1のE列を作業列とし、E2セルに =IF(A2="","",A2+1/ROW()) という数式を入れずぃ~~~!っと下へコピーしておきます。 そして、Sheet2のA2セルに =IFERROR(INDEX(Sheet1!A:A,MATCH(LARGE(Sheet1!$E:$E,ROW(A1)),Sheet1!$E:$E,0)),"") という数式を入れ、列・行方向にフィルハンドルでコピー! (A列の表示形式は「日付」とし) これで画像のような感じになります。 何度も失礼しました。m(_ _)m

Siam0710
質問者

お礼

ご回答ありがとうございます。私には難解な数式で、少しずつ勉強させていただきます。何度もありがとうございました。

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

No.2です。 投稿後に気づきました。 配列数式の行合わせ部分がおかしいですね。 ↓の式に訂正してください。 =IFERROR(INDEX(Sheet1!A$2:A$1000,LARGE(IF(Sheet1!$A$2:$A$1000<>"",ROW($A$2:$A$1000)-1),ROW(A1))),"") どうも失礼しました。m(_ _)m

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

こんばんは! No.1さんが回答されているようにA列の降順で並び替えをすれば一発で解決だと思いますが・・・ どうしても関数での方法をご希望というコトであれば一例です。 ↓の画像のようにSheet1のデータをSheet2に表示するようにしてみました。 お示しのURLの方法とは少し異なりますが・・・ 画像ではSheet2のA2セルに =IFERROR(INDEX(Sheet1!A$2:A$1000,LARGE(IF(Sheet1!$A$2:$A$1000<>"",ROW($A$2:$A$994)-1),ROW(A1))),"") これは配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → Sheet2のA2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このA2セルをD2セルまでフィルハンドルでコピー! A列がシリアル値になりますので、好みの表示形式にしておきます。 最後にA2~D2セルを選択 → D2セルのフィルハンドルで下へコピー! これで画像のような感じになります。m(_ _)m

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

何故、関数でなければならないのですか? 関数は手段の一つであって、関数を使うことが目的ではありません。 フィルタやソートで簡単にできるのであれば、それを使うのがベストです。 もしやるのであれば、RANK関数で順位を出して、matchで行番号を出して、それを基に表示するということでしょう。

Siam0710
質問者

お礼

ご回答ありがとうございます。 なぜフィルターを使わず関数なのか?という点ですが、 私の場合は、およそ1,000社から目的の会社をフィルタで選ぶのが手間だからです。 フィルタータブ?で目的の会社を探すだけで苦労しています。それも1社でなく複数行わなければいけないのです。なので特定のセルに目的の会社名を入れると関数で抽出してくれる方法がほしいのです。 「目的の会社名を入れるのが面倒だろう」と思われるかもしれませんが、そこは、この分について抽出せよとの指示が来るので問題はないのです。

関連するQ&A

  • EXCEL関数でフィルタの様にデータ抽出したい

    発注品一覧表から社別にデータを抽出した発注シートを関数で作りたいです。 オートフィルタは諸事情あって使用しません。 過去の質問のこちらが、かなり近い回答なのだと思いますが 不勉強で自分用に修正ができませんでした。 http://okwave.jp/qa/q3157199.html 一覧表はこのようになっています。 日付 社名 品目 値段 4/1  C社 鉛筆 50円  4/1  A社 定規 150円 4/2  C社 ペン 100円 4/2  B社 鉛筆 100円 社別の別シートに日付・品目・値段を一覧から関数で抽出できるでしょうか? どうぞよろしくお願いします。

  • Excel2007:25行ごとにデータを抽出する関数は?

    Excel2007:25行ごとにデータを抽出する関数は? 先日、Excelについて質問させて頂き、アドバイスをいただいた者です。 Excel2007で請求書を作成しており、1請求書には25行13列を使っています。 2つ目の請求書は26行目から、3つ目は51行目から…という風に、 表の下に1請求書ごとに改ページを入れながら 次々と請求書をつなげて作っていっています。 このなかから、会社名と金額のみを取り出して、 同シートの請求書枠外に表として作りたいと思っています。 請求書は25行13列(A1:M25) 会社名はD5、D30、D55・・・・ 金額はJ23、J48、J73・・・・ 表を作りたい場所は、同シートのP1に会社名、Q1に金額とし、 1請求書につき1行で、次の請求書のデータをP2・Q2に入れたいです。 VBAではなく、関数を入れることで可能でしたら、関数で考えたいと思っています。 いろいろやってみたのですが、うまくいかず・・・ お詳しい方、どうぞよろしくお願い致します。 いちおう、前回助けていただいた質問のURLを載せます。 http://okwave.jp/qa/q6245060.html

  • ベストアンサーを選ばずに質問を締め切るはどこに?

    ベストアンサーを選ばずに質問を締め切るのボタンは ある場合とない場合があるのでしょうか。 例えば、以下の(1)と(2)はいずれも、 最近、質問をして回答をいただいているのですが、 (どちらも同じ状況にみえるのですが) (1) http://okwave.jp/qa/q9280293.html では、ベストアンサーを選ばずに質問を締め切る のボタンは何とか見つけられるのですが、 (2) http://okwave.jp/qa/q9271424.html では、ベストアンサーを選ばずに質問を締め切る のボタンはどこにあるのでしょうか。

  • Excelで、他のExcelファイルからデータ抽出

    はじめまして。 タイトル通り、Excelのマクロで、他のExcelファイルのデータを抽出するマクロを作っています。 http://okwave.jp/qa/q3681193.html 上記ベストアンサーQ&Aを参考にして、他のExcelファイルからデータを持ってくるマクロを作ることは出来たのですが ・パスワードのかかったファイルから抽出する際は、パスワードの入力を省きたい(パスワードは全て同一)。 ・シート名は月日表示(0129など)になっており、何月何日から何月何日までのデータを持ってくるか指定出来るようにしたい。 ・抽出先のセルに何もデータがないときは何もデータを返さないようにしたい(現状は"0"が返ってきます)。 上記3点が上手く出来ず、詰まっている状態です。 何かいい方法があれば、ご教授願いたく質問をさせていただきました。 よろしくお願いいたします。

  • Excel関数でデータを抽出する方法

    Excel初心者教室での課題で、以下のような問題を出されました。 次の表から、データが全てあるものだけを抽出し、sheet1からsheet2に移しなさい。 〈名前〉〈 E社〉〈 F社〉〈 G社〉 〈 A 〉〈 1 〉 〈 2 〉 〈 3 〉 〈 B 〉 〈 2 〉 〈 2 〉 〈 C 〉〈 3 〉〈 1 〉〈 5 〉 〈 D 〉 〈 1 〉 上の表からAとC(3社共にデータがある)ものだけを抽出したいのですが、回答条件が ●データ抽出にはオートフィルター機能は使用せず、関数で処理すること ●今まで習った知識で回答可能 とあり、まだ初心者クラスで、データ抽出に関係がありそうな関数はIF関数やVLOOKUPくらいしか思い当たらず、それらを使って抽出を試みたのですが「三社共にデータがあるものだけ抽出」という条件が処理出来ず、上手く出来ませんでした。 手詰まりで先に進めずに今、困っています。 そこで、Excelに詳しい方にアドバイス頂けたらと思い、書き込みしました。 宜しくお願いします。 文章力が低いので分かり辛い文面で、表も見辛くてすみません。

  • http://okwave.jp/qa/q5653083.htmlをベ

    http://okwave.jp/qa/q5653083.htmlをベストアンサーが出ていないので締め切る方法は何ですか| OKWAVEのパートナーサイトからはログイン撥ねられますので困っています

  • エクセルでデータ抽出後の元データを自動削除する方法

    エクセルで下記のような抽出方法を質問したのですが、 http://okwave.jp/qa/q6856275.html さらに、(2)のようなことが可能でしょうか。 (1)sheet1のA1からA100に入力された文字をsheet2のA1に抽出したい文字をいれると、    sheet2のA2以下に抽出したい文字を含んだ行を抽出。(解決済み) (2)上記、抽出時に抽出された元データを自動的に削除したい。 宜しくお願いします。

  • Excel関数みたいに画像を抽出するには

    とある化学物質を別容器保管する時に使用するラベルを作成しようとしています。 Excelで製品のマスターデータに格納(セルサイズに合わせて配置した画像)を別シートで抽出関数(VLOOKUPやINDEX関数など)で値を抽出するように、格納した画像を抽出してセルサイズに合わせて配置する方法はないでしょうか。 画像以外の値はINDEX関数とMATCH関数を組み合わせて抽出しています。 ネットの文献で数式を使って画像を表示させる方法を参考にしたところ、名前の定義がうまくできませんでした。 〇ttps://k-ohmori9616.hatenablog.com/entry/2019/05/13/153347 Sheet構成は添付画像の通りです。 関数またはVBAで画像を抽出する方法はないでしょうか。 詳しい方いましたらご教授ください。 バージョンはExcel2016 です。

  • データの抽出 Excel2003

    以下のA表があり、ここから該当するデータをB表のように抽出したいのですが、どすればいいでしょうか。 概要) ○田さん、△池さん、□海さんの家族がいます。 A表の世帯主欄には世帯毎に1,2,3と数字がはいっています。また、抽出した人は該当者の欄に同じく1,2,3と数字が入っています。 空白のセルはブランクの状態です。 なお、世帯主のみ時はこのサイトで教えて頂いたOFFSET関数とMATCH関数の組み合わせでできたのですが。 A表) ┌─────┬───┬───┐ │ 氏名     │世帯主│該当者│ ├─────┼───┼───┤ │○田 ○夫│    1│     │ ├─────┼───┼───┤ │      ○美│    │    │ ├─────┼───┼───┤ │     ○子│ │ 1│ ├─────┼───┼───┤ │△池 △夫  │ 2│ 2│ ├─────┼───┼───┤ │□海 □子   │ 3│ │ ├─────┼───┼───┤ │ □男   │ │ 3│ └─────┴───┴───┘ B表) ┌─────┐ │○田 ○夫│ ├─────┤ │△池 △夫│ ├─────┤ │□海 □子│ └─────┘

  • どの回答をベストアンサーに選ぶべきでしょうか?

    http://okwave.jp/qa/q6418252.html ↑で質問した質問に対して ご回答いただいた回答の中で、 どの回答をベストアンサーに選ぶべきか 悩んでいます。 ご教示いただけますでしょうか。

専門家に質問してみよう