• ベストアンサー

エクセル 最新データのみを表示させたい場合

エクセルに、名前と来訪日がのったシートがあったとします。 その名前の最終来訪日のみを表示させる、関数等はございますでしょうか?    A列  B列  1 佐藤 2008/10/5 2 鈴木 2008/1/20 3 上田 2008/5/25 4 鈴木 2008/9/15 5 小野 2008/3/7 6 上田 2008/2/3 7 佐藤 2008/10/16 8 鈴木 2008/11/13 9 佐藤 2008/9/8     ・     ・     ・ シンプルに見えて、意外と難しく私の知識では対応できませんでした。 お手数ですが、お知恵をいただけますと幸いです。

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

  • ベストアンサー
回答No.3

並べ替えてもいいのかな 1. タイトル行を設け 2. データ-並べ替え  最優先 名前 : 昇順(降順)  2番目 日付 : 昇順(降順) 3. [OK] 1. データ - 集計  グループの基準 名前  集計の方法 最大値 2. [OK] 3. [2]をクリック

biginer09
質問者

お礼

大変助かりました、ありがとうございました! 集計で最大値だせるところまで頭がまわりませんでしたが、 これを利用して、何とかデータを作成することが出来ました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

次の方法は如何でしょうか。 データをsheet1として、sheet2に抽出します。 (1)sheet2のA1を選択→データ→フィルタ→フィルタオプションの設定 (2)「指定した範囲」をチェック、リスト範囲欄にsheet1!$A:$A、検索範囲条件欄は未入力、抽出範囲欄にA1、「重複するレコードは無視する」チェック→OK (3)sheet2のB1に=MAX(IF(Sheet1!$A$1:$A$1500=A1,Sheet1!$B$1:$B$1500,""))として下方向にコピー    尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

biginer09
質問者

お礼

ご丁寧にご回答ありがとうございました。 今回は前の方の方法で無事作成できましたが、 mu2011さんの方法も、時間があるときに、是非試したいと思います。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

オートフィルタとSUBTOTAL関数で 対象範囲を選択 → データ → オートフィルタ → 名前でオートフィルタ 画像のように佐藤さんの最新の来訪日が表示される。 Excel関数-subtotal関数の使い方 http://exinfo.biz/func/func_subtotal.shtml

biginer09
質問者

お礼

画像つきで丁寧なご回答ありがとうございました。 しかし、今回扱っているデータの行数が1500行になり、名前にあたる部分も 100種以上ある状況のため、この方法ですと対応できなかったようでした。 説明不足で申し訳ございませんでした。 ご丁寧なご説明感謝いたします。

全文を見る
すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

データベース関数を使って見ては? A1、B1に各列のタイトルを付ける(例:A1に「NAME」、B1に「DATE」)。 検索条件を別な場所に作る(例:D1セルに「NAME」、D2セルに「佐藤」)。 適当なセルの表示形式を日付にして、↓の式を入れる。 =DMAX(A1:B10,"DATE",D1:D2)

biginer09
質問者

お礼

さっそくのご回答ありがとございます。 すみません、説明不足でした。 例を単純化しすぎましたが、今回扱っているデータが行にすると1500行あり、試させて頂きましたが、残念ながらこの方法はマッチしないようでした。 しかしデータベース関数、大変参考になりました。感謝します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数

    シート1という名前のシートと シート2という名前のシート2つのシートがあります。 シート1は ・A列には従業員の氏名が入っています ↓このように  A 空欄 鈴木 伊藤 佐藤 ・資格名は見出しとしてB2~Q2まで入ってます(見出しとして) ↓シート1の全体はこのような感じ  A   B    C    D 空欄 資格1 資格2 資格3 鈴木 伊藤 佐藤 次にシート2は ・A列に個人コードが入ってます ・B列に名前が入ってます ・C列に資格名称が入ってます ・D列に資格取得日が入ってます ↓シートの全体はこのような感じ A  B   C    D 1  鈴木  資格1   6月 1  鈴木  資格2   7月 2  伊藤  資格3   8月 2  伊藤  資格1   9月  2  伊藤  資格2   10月 3  佐藤  資格3   11月 上記のようなシートがあります。 ここでシート1にシート2の値を返していきたいのですが 見ての通り書式はバラバラです 例えばシート2を見て鈴木は資格1、資格2、資格3を持っています 資格1だったら○をシート1の鈴木と資格1がぶつかってるセルに 資格2だったら○をシート1の鈴木と資格2がぶつかってるセルに 返していきたいのです 何か有効な関数などはありませんでしょうか? むしろ関数でできるのでしょうか? 説明が訳分からなくてすみません。 

  • エクセルで最新データのみを抽出したいのですが・・・

    タイトルにあるとおり、エクセルで最新データのみを抽出するような関数があればと思い質問させていただきます。 シート1     A列   B列   C列   D列 ・・・ 1行目      佐藤   田中   伊藤  2行目 1日目   ○      3行目 2日目   △   ■    ☆ 4行目 3日目       ○ ・ ・ ・ ・ 18行目 18日目   ■ 19行目 19日目   ○   △   ○  20行目 20日目   ◎   ☆ と、いうようなシートがあったとします。 シート1ではこのように、毎日新しいデータ(記号) が入力されていくとします。 シート2      A列  B列  C列  D列  E列・・・ 1行目  ◎   ○   ■   ☆   △    2行目  1    2    1    1    1 と、いうようなシートがあったとします。 シート2ではシート1で入力されたデータをカウントしていくとします。 この場合、シート1での1行目の各氏名は関係なく、ただ記号のみをカウントしていくものとします。 ただ、カウントするだけの場合でしたらCOUNTIFでいけると思います。 タイトルにあるとおり、最新データからのみカウントしたいと思っているのです。 上のシート2では例として、18~20日分のカウントをしておりますが、実際には10日分程度をカウントしたいと思っております。 ですので、このシートを例にすると20日が最新とした場合 11~20日分の記号をカウントし、そして21日に新たなデータが入力された場合、12~21日分の記号を新たにカウントしたいわけです。 このようなケースにおける関数をご存知の方どなたかご助力いただけますと幸いです^^;

  • エクセルVBAの質問です

    sample.xlsがあり内容は下記のように A列に名前、B列に数字が入り、行数は一定でありません 田中一郎 3 鈴木健一 5 佐藤太郎 8 田中一郎 5 田中一郎 2 佐藤太郎 7 鈴木健一 3 佐藤太郎 9 鈴木健一 54 佐藤太郎 8 田中一郎 9 このエクセルシートにコマンドボタンを付け、VBAでコマンドボタンを押した場合 指定したエクセルファイル”kekka.xls”に 田中一郎 19 鈴木健一 62 佐藤太郎 32 と言うように、名前別でその氏名の横の数字の合計を表示させたいと考えています。 何卒お知恵をお貸しください、お願いします。

  • エクセル(2003・2007)でデータ抽出し、別シートを作成するための

    エクセル(2003・2007)でデータ抽出し、別シートを作成するための関数を教えて下さい ●シート名:サンプルA                ●シート名:サンプルB   A  B    C   D  E・・        A  B     C   名前 日付1  日付2  備考      名前 日付1   備考 1 山田 2010/10/15 2010/10/10 ああ    1 鈴木 2010/10/18 うう 2 佐藤             いい       2 太田 2010/10/21 かか  3 鈴木 2010/10/18 うう     → 4 井上 2010/11/20 ええ 5 石田 2010/8/7 2010/10/7 おお 6 太田 2010/10/21 かか 具体的に上記のデータから【B列が本日から10日間以内かつC列がスペース】のデータのA・B・D行を別シートに作成する関数を教えて下さい よろしくお願いします ※なぜか文字がずれてしまってて、すいません・・・

  • エクセル 条件つきで最小値を求めたいです

    A列に200名を超える生徒の名前が入っています。 B列に計算テストの結果が入っています。 計算テストは何度も行われており、A列に何度も同じ生徒の名前が出てきます。A列に入っている生徒の名前は1000を超えます。 A   B 田中  42 佐藤  48 鈴木  52 佐藤  56 田中  72 鈴木  60 鈴木  23 などです。この中で鈴木君のとった得点の最小値は23点ですが、それを求める数式を知りたいです。 『rankif』とか『minif』みたいな関数があればいいのですが、ないですよね。ちなみに、私が使用しているパソコンはexcel2000です。 他のシートやC列から右に生徒を判別する関数を入れていけば、私の知っている知識でも可能なのですが、関数を多用すると重くなりますし、避けたいです。また、もともとのデータの入力の仕方を変えたらいいのですが、それはできない状態です。 =MIN(IF(A2:A7="鈴木",B2:B7),false) みたいな感じかなと式を立てたのですが、うまくいきません。上の状態で、セルに23と表示されるには、どうすればいいか教えてください。お願い致します。m(_ _)m

  • エクセルのCOUNTIF関数について質問です。

    エクセルのCOUNTIF関数について質問です。 例えば下記のように入力されているとき、「田中」が含まれるセルを数えるとき、Sheet2のB1の列には「=COUNTIF(Sheet1!A:A,"*田中*")」と入力すればいいと思いますが、「"*田中*"」の部分を「A1」、上田の場合は「A2」とする場合はどうすれば良いでしょうか? <Sheet1>   A 1 上田夫妻 2 田中兄弟 3 田中太郎 4 田中さん 5 鈴木姉妹 <Sheet2>   A   B 1 田中 2 上田 3 鈴木

  • エクセルで2つの条件を元に

    エクセル2007で名簿を作っています。 1ヶ月ごとにメンバーの順が変わります。 シート1(番号順に名簿を作りました)   A  B   C  1 1     山田 2 2     木村 3 3 副長 佐藤 4 4     鈴木 5 5 班長 田中 6 6     長田  シート2(こちらがメンバーに配る名簿です)   A   B  C   D 1 班長    1    3 2 田中    山田  鈴木 3 4 副長    2    4 5 佐藤    木村  長田 A2に田中,A5に佐藤を選んでくるのはvlookupで成功しました。 質問したいのは C列D列に上記の番号のようにシート1の名前を入れていきたいのですが,田中,佐藤の分を抜いた上で番号の若い順に選んできたいのです。 どのような関数をどのように使えば成功するでしょうか。  

  • エクセル

    エクセル2003で関数について質問です。   A   1 佐藤 2 佐藤 3 遠藤 4 鈴木  とあるデータの最頻値を求めたいのでが 上記から見て最も多いのは「佐藤」ですが これを関数の MODE で数式を入れたいのですが 数字だとうまく行くのですが文字列?があるとエラーが#N/Aと でます>< どうやったら最頻値を求められますか? 教えてくださいませ

  • excel関数でユニークな数値だけ抜き出したい場合

    以下のようなシート(仮にsheet1)のA列からユニークな番号だけ抜き出したい場合sheet2のA列にどのような関数を使用すれば良いですか? A  B 101 山田 101 山田 101 山田 114 佐藤 114 佐藤 123 鈴木

  • エクセルでひもづいて表示させるには

    エクセルで、シート1とシート2をつくり、シート2には、 A  B   C 1  佐藤 5214 2  田中 3562 3  木村 2235 という、番号と名前、コードを表にします。 シート1のA列に「1」(番号)を入れると、B列にそれにひもづいた「名前」、C列に同じく「コード」を表示させるには、どうすればよいでしょうか。 よろしくお願いいたします。

PCの利用環境について
このQ&Aのポイント
  • 様々なサイトにログインをする際、推奨しているブラウザーを利用するほうがベストです。
  • 推奨しているブラウザー以外を利用した場合、問題が生じる可能性があります。
  • NEC 121wareを利用する際は、Windowsを利用してください。
回答を見る

専門家に質問してみよう