[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『小さい順に検索したいのですが』(つむつむ)
いつも拝見させて頂き参考にさせて頂いています。
A列に日付が数字でランダムに複数並んでいます。
日付のデーターは、最大1000行で一定ではありません。
C列に日付の小さい順に並べたいのですが
A B C 1 20150105 20150101 2 20150102 20150102 3 20150101 20150103 4 20150104 20150104 5 20150101 20150105 6 20150106 20150106 7 20150106 8 20150102 9 20150103 10 20150104
宜しくお願い致します。
< 使用 Excel:unknown、使用 OS:unknown >
A列をC列にコピペしてC列を並び替えて重複の削除を行えばあっという間だと思いますが?
(β) 2015/08/26(水) 19:16
作成した表は、色々な方が使用する予定です。
中には、エクセル不得意の方もおられますので
出来れば関数で、お願い出来ないでしょうか
宜しくお願い致します。
(つむつむ) 2015/08/26(水) 19:28
配列を作り出す関数は、とてもβの手に負えませんので、ちゃんとした回答者さんの回答をお待ちください。
ところで A列は 日付型データで表示書式が yyyymmdd なんですか? それとも、数字で nnnnnnnn なんですか?
(β) 2015/08/26(水) 19:44
例題でしか検証してないけど、、、
C1 =MIN(A1:A1000)
C2 =IF(OR(C1="",MAX($A$1:$A$1000)=C1),"",SMALL($A$1:$A$1000,COUNTIF($A$1:$A$1000,"<="&C1)+1))
C2を必要なだけ下へコピー
こんな感じかな。 (笑) 2015/08/26(水) 19:56
VBAで恐縮ですが、行数がいくら増減しようと対応します。 このマクロを、ボタンに登録するなり、マクロショートカットを割り振るなりしておけば 操作者は、ワンタッチで処理可能です。
Sub Test() Dim c As Range
With CreateObject("System.Collections.ArrayList") For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp)) If Not .contains(c.Value) Then .Add c.Value Next .Sort Columns("C").ClearContents Range("C1").Resize(.Count).Value = WorksheetFunction.Transpose(.toarray()) End With End Sub
(β) 2015/08/26(水) 19:58
同じVBAでも、コメントしたエクセル機能をそのまま使ったものがわかりやすいですね。
Sub Test2() Columns("A").Copy Range("C1") Range("C1", Range("C" & Rows.Count).End(xlUp)).RemoveDuplicates Columns:=1, Header:=xlNo Range("C1", Range("C" & Rows.Count).End(xlUp)).Sort key1:=Range("C1"), order1:=xlAscending, Header:=xlNo End Sub
(β) 2015/08/26(水) 20:09
ご連絡有難うございました。
お二人ので出来ました。
β様には、お忙しい所教えて頂きましたが
今回は、笑様の関数で実施しようと思います。
お二人に感謝です。
有難うございました。
(つむつむ) 2015/08/26(水) 20:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.