質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

3回答

319閲覧

excelのデータ抽出が、思うように出来ずに苦慮しています!

akakage13

総合スコア89

0グッド

0クリップ

投稿2017/08/29 10:25

excelのデータ抽出が、思うように出来ずに苦慮しています!

race_date horse_name season 2011/11/17 □地オノユウ 11 2011/10/19 □地オノユウ 10 2011/10/6 □地オノユウ 10 2011/8/11 □地オノユウ 8 2010/10/24 □地オリオンザカフェ 10 2010/10/11 □地オリオンザカフェ 10 2010/8/28 □地オリオンザカフェ 8 2010/7/31 □地オリオンザカフェ 7 2010/7/10 □地オリオンザカフェ 7 2010/5/1 □地オリオンザカフェ 5 2013/1/2 □地オリオンザボックス 1 2012/12/28 □地オリオンザボックス 12 2012/12/24 □地オリオンザボックス 12 2009/10/3 □地オリオンザボックス 10 2009/9/21 □地オリオンザボックス 9 2009/9/5 □地オリオンザボックス 9 2009/8/14 □地オリオンザボックス 8 2009/7/26 □地オリオンザボックス 7 2010/9/9 □地カキツバタムーン 9 2010/8/20 □地カキツバタムーン 8 2010/8/6 □地カキツバタムーン 8 2010/7/22 □地カキツバタムーン 7 2009/12/15 □地カキツバタムーン 12 2009/11/27 □地カキツバタムーン 11 2009/10/9 □地カキツバタムーン 10 2010/2/9 □地ゴールドセンチュリ 2 2010/1/26 □地ゴールドセンチュリ 1 2009/12/28 □地シーズザゴールド 12 2009/11/30 □地シーズザゴールド 11 2009/8/26 □地シーズザゴールド 8 2009/8/11 □地シーズザゴールド 8 2010/10/2 □地スキャンダル 10 2010/9/25 □地スキャンダル 9 2010/8/25 □地スキャンダル 8 2010/5/24 □地スキャンダル 5 2009/12/26 □地スキャンダル 12 2011/4/27 □地スタートップレディ 4 2011/3/16 □地スタートップレディ 3 2011/3/4 □地スタートップレディ 3

上記の競馬データにおきまして、

各列が race_date, horse_name, season

各行が データになっている excelシートが有るといたします。

このデータの中で、

各馬の 一番古い race_date の 行

だけを抽出したいのです。

各馬、1行づつ、抽出したいのです。

エクセルの並べ替えや、フィルタ等を用いて、試みましたが、

並べ替えでは、同じ馬が2回以上登場したり、うまく出来ませんでした。

自分なりに丸投げに、ならないように、試みたのですが、うまく抽出出来ませんでした。

先輩方の、御教示、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Excelを使用されているのであれば、ピボットテーブルを利用されてはいかがでしょうか。
データ範囲を選択して、「挿入」→「ピボットテーブル」をクリックします。
行に「horse_name」、列に「race_date」、値を「最小」とすれば目的のデータが取得できるかと思います。

追記:
各horse_nameの一番古い行以外を抽出したいということですね。
それはピボットテーブルでは要件を満たせません。

「race_date」がA列、「horse_name」がB列、「season」がC列、見出しが1行目にあるとして、
以下ではどうでしょうか。

1.D2セルに以下の数式を入力してください。

=COUNTIF(B2:B$2,B2)=1

2.上記セルをD列に行数分コピーしてください。
3.A列〜D列にオートフィルターを適用します。
4.A列を昇順ソートした後で、D列で「TRUE」となっている行をフィルターで除けば、
一番古いデータはなくなった状態になるかと思います。

投稿2017/08/29 10:57

編集2017/08/30 03:50
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akakage13

2017/08/29 11:18

suyama様、御教示ありがとうございます。 小生、一番古いrace_dataの行を削除した、そのエクセルシートが、ほしいのです。 ピポットでも出来るのでしょうか、御教示いただけましたら幸いです。
退会済みユーザー

退会済みユーザー

2017/08/29 11:40

コメントの内容を受けて、回答を追記しました。
akakage13

2017/08/29 23:11

suyama様、眼からウロコでございます。数度にわたる御教示、本当にありがとうございました。 うまく分類出来ました。 今後ともよろしくお願いいたします。
guest

0

このデータなら一発では無いですが、通常の並び替えで出来ませんか?データの並び順を「1:horse_name」「2:race_date」の後に、各馬名の一番上、または一番下を削除で希望のデータになりませんか?

※他の回答者の方への返答も含め、質問を勘違いしているかもですが、一番古い行のみが欲しいのでしょうか?それとも、その一番古い行を削除した残りのデータ(シート)が欲しいのでしょうか?後者だと思い回答しております。

投稿2017/08/29 11:53

編集2017/08/29 12:06
yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akakage13

2017/08/29 13:00

yoshinavi様、御教示ありがとうございます。 御教示の通りなのですが、 小生は、実は、おおよそ、14万行のデータを想定しています。 そのため、各馬名の一番上、もしくは一番下を削除することが、 物理的に無理な状況でございます。 この条件下で、残りのデータシートが欲しいです。 重ねて、ご教授、お願いいたします。
yoshinavi

2017/08/29 14:27

少し手間ですが、上記の状態(古いデータを上)で馬名の重なりを削除し、残ったデータを別シートに一旦保存し、再度、元データの一番上にコピペし、重なりの削除ではどうでしょうか? 数分の作業だと思いますが、如何でしょうか?
guest

0

一番古いデータを閲覧したいのであれば、以下の手順でできます。

(1) フィルタを設定する。
(2) 1列目 race_date のフィルタで、一番古い日付を選択する。

イメージ説明

投稿2017/08/29 10:46

tukuroku

総合スコア234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akakage13

2017/08/29 11:23

tukuroku様、御教示ありがとうございます。 貴殿の手順ですと、小生の目的であります、各馬の一番古いrace_dateのデータだけがほしいのですが、 他のデータも抽出されるように思います。 そこのところ、御教示いただけましたらありがたいです。
tukuroku

2017/08/29 23:42

失礼、各馬ということを見落としていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問