[[20030318094327]] 『自動的に日にちの若い順に入力されるように』(名無し181) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『自動的に日にちの若い順に入力されるように』(名無し181)

お力をお貸し下さい。お願いします。

 1

A1/9

B1/9

C1/9

D1/10

E1/10

F1/15

という表を別のsheetに、自動的に日にちの若い順に入力されるようにしたい。

<sheet2>

 1   2  3

A1/9 1/10 1/15


 回答するために、少し確認させてください。

 Sheet1では、日付がA列からF列の1行目に入っていて、

 Sheet2ではA列の縦に並べるということですか?

 それとSheet1の日付は、横に増えていく可能性があるのでしょうか?

 日付以外の2行目以降には、どんなデータが入っているのでしょうか?

 重複日付をまとめるということは、日付以外のデータを無視するということですか?

 そのデータを、Sheet2に複写する必要はないのですね。

 解決策のためには、Sheet1のデータの縦横を入れ替えることは可能ですか?(すーさん)


 シート1に

 1/9     大阪

 1/9     京都

 1/9     大阪

 1/10    大阪

 1/10    京都

 1/11    京都

 っというA列に日付、B列に納入先が入力されている表があります。

 それを、シート2で

      大阪    京都

 1/9     2      1

 1/10    1      1

 1/11    0      1

 っというように、自動で日付の若い順に表示されるようにしたい。あとは、CUNTIF

 で、計算してあります。

 よろしくお願いします。


 日付の範囲を選択して、メニューバーの「データ」→「フィルタ」→「フィルタオプションの設定」を開いて

 「重複するレコードは無視する」にチェックを入れて「OK」をクリックすると、

 重複日付が非表示になります。

 その日付範囲をコピーして、シート2に貼り付けるというのはどうですか?

 その手順を「マクロの記録」で名前を「日付の整理」として登録して、

 日付の範囲が増えることを考え、A列全部を「コピー&貼り付け」に直したのが

 下のコードです。 ためしてみて下さい。

 Sub 日付の整理()

 '重複日付を非表示にする

    Sheets("シート1").Select

    Application.CutCopyMode = False

    Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True

    Range("A:A").Select

    Selection.Copy    

 'シート2に貼り付ける

    Sheets("シート2").Select

    Range("A1").Select

    ActiveSheet.Paste

         ←後から「非表示を元に戻す」処理を挿入することも可能です

 End Sub

 シート1の非表示を元に戻すには、「フィルタ」→「すべて表示」を選択して下さい。

 この処理も「マクロの記録」で行い、コードをマクロの続きに貼り付ければ、

 自動化できます。(すーさん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.