- ベストアンサー
エクセルの日付の重複の除去
エクセルの日付の重複の除去 シート1のA列に以下のように日付が入っています。 データはAの100位まで日付があります。 A列 1/1 1/2 1/2 2/1 2/1 2/2 これを同じシートのB1に以下のようにまとめて重複分を除いた形で 表示したいのです。 B1セル→1/1 1/2 2/1 2/2 各日付の間は一文字分のスペースです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 無理やりって感じです。 VBAになってしまいますが・・・ 操作したいSheet見出し上で右クリック → コードの表示 → 白い画面がでますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 尚、A列のデータは1行目からとしています。 Sub test() Dim i As Long Dim str, buf As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(i, 1)), Cells(i, 1)) = 1 Then str = WorksheetFunction.Text(Cells(i, 1), "m/d") buf = buf & " " & str End If Next i Cells(1, 2) = buf End Sub 一旦マクロを実行すると元に戻せませんので別Sheetにコピー&ペーストしてマクロを試してみてください。 当然のことながらB1セルは文字列になります。 他に良い方法があればごめんなさいね。m(__)m
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
こういうのはB列の複数行に出すことで、我慢すること。 データーフィルターフィルタオプションの設定のウインドウで、「指定した範囲」にチェック、条件設定セルは空白で良い、抽出範囲はB列を指定し、「重複するレコードは無視する」にチェックを入れておく。 B列の結果をB1セルに入れるとなると、&やCONCATINATE関数とスペースを使って結合するが、行数が多く、数が不定なので関数ではやりにくい。 ーーー VBAを勉強するならやさしいが、VBA出来るくらいなら質問しないだろうな。
- shinkami
- ベストアンサー率43% (179/411)
稚拙とは思いますが、提案させていただきます。 日付は昇順であることが前提です。 仮計算列(仮にZ列)で文字連結をしてこれの最終行のセルをセルB!で参照する Z2=IF(A2="","",TEXT(A2,"M/d")) Z3=IF(OR(A3="",A2=A3),Z2,Z2&TEXT(A3," m/d")) セルZ3をZ4以降にコピペ Z列の最終セルを参照 結果確認後Z列を非表示にする
補足
ありがとうございした。 うまくできました。 ただ、B列の最下行のデータの取り出しが うまくいきませんでした。 お願いします。
- mate0128
- ベストアンサー率30% (31/102)
各セルの横に表示させるのであれば、そのまま、書き込めばいいのですが、一つのセルに日付を表示させるには、関数を使います。ただしこの場合は、後から、A列の文字を削除しないと言う事が前提です。もし、削除しなければならないのだったら、文字入力してください。 テキスト関数を使います。 =text(A2,m/d) &" "& text(A3,m/d) & " "&text(A5,m/d)&""&text(A7,m/d) 以上のように入力すれば、A列を参照して、日付が表示されます。
補足
ありがとうございます。 参考になります~。