• ベストアンサー

エクセルでこんなこと出来ますか?

A 1 月/日 2 4/10 3 4/23 4 4/15 5 4/10 6 4/8 というデータがあるとします。 そのデータ下の方に自動的に日付の若い順に重複データは1行のみの表示をさせる(下のような感じ)良い方法はありませんか?できればVBAでない方が嬉しいのですが… 11 4/8 12 4/10 13 4/15 14 4/23

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

  • ベストアンサー
noname#176215
noname#176215
回答No.7

個人的には yesletsさんがおっしゃる通り フィルタオプションの 設定が良いと思います。関数でやるなら ■A11セル =IF(COUNT(A2:A10),MIN(A2:A10),"") ■A12セル =IF(A11="","",IF(MAX(A$2:A$10)=A11,"", LARGE(A$2:A$10,RANK(A11,A$2:A$10)-1))) 下方向にコピー でできます。

papaiyaiya
質問者

お礼

ありがとうございます。 関数でやりたかったのす。 この方法が私の求めていたものです。 いや~こんなこともできるんだというのが正直な実感です。 ほんとにありがとうございました。

その他の回答 (7)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.8

エクセルで、セルに正式な日付け入力をすると、そのセルには、日付シリアル値(1900年1月1日以来の実日数)という正整数がセットされます。それで正整数の例で説明しても質問の場合にも当てはまります。 例データ A1:A10 12 11 13 12 10 6 11 10 2 2 例えばC1に =SMALL(IF(COUNTIF(OFFSET($A$1,0,0,ROW($A$1:$A$10)),$A$1:$A$10)=1,$A$1:$A$10,99999),ROW()) と入れて、 SHIFT、CTRL,ENTERの3つのキーを同時に押します(配列数式) そして、C1で、+ハンドルを出して下方向に引っ張ります。 結果 2 6 10 11 12 13 99999 この 99999 は、SMALL関数を使う関係で、最近の日付のシリアル値は3万8千台なので、将来にも、まず超えない数値ということで入れています。 その直前で式の複写を止めるか、=IF(上記式=99999,"",上記式) にするなどして、見えなくすることができます。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.6

A11:=MIN(A2:A6) A12:=SMALL($A$2:$A$6,COUNTIF($A$2:$A$6,"<="&A11)+1) エラー処理はしていません

  • yeslets
  • ベストアンサー率31% (47/151)
回答No.5

「自動的に」が入力をした時点で自動的に(つまり関数を使って)という意味なのか、単に「したい時」なのかわかりませんが、「したい時」ならば、 (1)A1にある文字列(月/日)と同じ文字列をA10に入力 (2)A1からA6を選択 (3)フィルタオプションの設定で    抽出先に「指定した範囲」を選択    リスト範囲A1:A6を確認(入力されているはず)    抽出範囲にA10:A15を入力    「重複するデータは無視する」にチェック    実行ボタンをクリック で出来ると思います。

papaiyaiya
質問者

補足

ありがとうございます。 自動は上部に入力した途端に表示されるイメージです。

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.4

No.3追記です。 作業列使わない場合、 [A11]=SMALL(IF(COUNTIF(OFFSET($A$2,,,ROW($A$1:$A$5)),$A$2:$A$6)=1,$A$2:$A$6,""),ROW(A1)) と入力orコピーして、セル編集状態で、通常[Enter]キーのみ押すところを、 [Ctrl]+[Shift]+[Enter]キー同時押し。 配列数式です。 これを[A12:A15]へコピー。 (くどくなるので、エラー処理していません^ ^;)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.3

こんにちは。 例えば未使用列を作業用に使えるなら、一旦重複を排除します。(仮にB列) [B2]=IF(COUNTIF($A$2:A2,A2)=1,A2,"") B6までコピー。 [A11]=IF(COUNT($B$2:$B$6)<ROW(A1),"",SMALL($B$2:$B$6,ROW(A1))) A15までコピー。

noname#204879
noname#204879
回答No.2

1.セル A11 に次式を入力して、此れを下方にズズー   ッと複写 =IF(ISERROR(SMALL(A$2:A$9,ROW(1:1))),"",SMALL(A$2:A$9,ROW(1:1))) 2.セル A11 以降全ての式を選択して[コピー]→[値   の貼り付け] 3.“重複するレコードは無視する”機能を適用して   [フィルタオプションの設定]を実行

  • gztar2005
  • ベストアンサー率20% (15/73)
回答No.1

vlookupって関数を使うといいですよ。

papaiyaiya
質問者

お礼

/(??)

関連するQ&A