[[20200731150416]] 『重複のセルの最新のみを選定したい』(ナナコ) ページの最後に飛ぶ

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

 

『重複のセルの最新のみを選定したい』(ナナコ)

  A列           B列   C列
1  日時          番号  名前
2 2020/7/29 8:03    10005  A
3 2020/7/15 8:34    10005  B
4 2020/7/28 8:26    10006  C
5 2020/7/14 9:23    10006  D
6 2020/7/29 8:26    10007  E
7 2020/7/28 10:05    10007  F

B列の番号が複数あるとき、A列の時間が最新のものだけ選定したいです。
ご教授お願いいたします。

< 使用 Excel:Office365、使用 OS:Windows10 >


 1.同じ番号の場合、必ず上方にあるのが最新なんでしょうか?
   サンプルではそう見えますが。

 2.選定とは具体的にどういう状態にしたいと言うことですか?

(半平太) 2020/07/31(金) 15:27


確認ですが、おなじ【番号】のときに、日時が完全に一致するものはないという理解で大丈夫ですか?
↑が前提となりますが、やりたいことが【番号】に対して、最新日時の【名前】を【取り出したい】ということであれば
   ________A____________B_____C_______
  1      日時         番号   名前
  2 2020/7/29 8:03    10005   A
  3 2020/7/15 8:34    10005   B
  4 2020/7/28 8:26    10006   C
  5 2020/7/14 9:23    10006   D
  6 2020/7/29 8:26    10007   E
  7 2020/7/28 10:05   10007   F

 10     番号          名前
 11    10005           ★
 12    10006           ↓
 13    10007

 ★のところに以下を入力して下方向にフィルコピー
=INDEX($C:$C,
SUMPRODUCT(
($A$2:$A$7=MAXIFS($A$2:$A$7,$B$2:$B$7,A11))*
($B$2:$B$7=A11),
ROW($A$2:$A$7)))

というアプローチは可能だと思います。

(もこな2 ) 2020/08/02(日) 12:29


Sub main()
'番号を赤網掛にする
    Dim dic As Object, c As Range
    Set dic = CreateObject("Scripting.Dictionary")
    For Each c In Range("B2:B" & Rows.Count).SpecialCells(2)
        If dic(c.Value) < c.Offset(, -1).Value Then dic(c.Value) = c.Offset(, -1).Value
    Next c
    For Each c In Range("B2:B" & Rows.Count).SpecialCells(2)
        If dic(c.Value) = c.Offset(, -1).Value Then c.Interior.Color = vbRed
    Next c
End Sub
(mm) 2020/08/03(月) 10:51

(半平太)様、確かに、事前にシートコピーしておけばA列で降順にして重複削除でも最新のみになりますね。いちばん簡単にできそうなことでした。

(もこな2 )様、ありがとうございました。

(mm)様、ありがとうございます。理想の結果でした!

皆様に感謝申し上げます。

(ナナコ) 2020/08/12(水) 09:54


コメント返信:

[ 一覧(最新更新順) ]


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