[[20170607135900]] 『A列が同じでB列の日付が遅いもの2つに番号を付けax(集計係) ページの最後に飛ぶ

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

 

『A列が同じでB列の日付が遅いもの2つに番号を付けたい』(集計係)

以下の様なシートがありまして、A列が同じでB列の日付が遅いもの2件に遅い日付のものから「1」「2」とC列に付けたいと思ってます。同じA列B列の場合は同じものと見做したいです。

C列に入れる関数などで良い方法があれば教えてください。

 A列  	  B列	   C列

 12456	20170606	1
 98475	20110304	1
 12456	20170506	-
 12456	20170605	2
 56789	20160304	-
 37523	20170505	-
 37523	20170505	-
 98475	20110304	1
 98475	20110303	2

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 A列が12456の場合、同じ20170606でも一方は1でもう一方は-になっている。
 対してA列が98475の場合、同じ20110304が両方とも1になっているがその違いは何か?
 また56789は一つだけで-、 37523は同じ項目が二つで両方とも-。

 もっと番号を振る法則をきちんと説明してくれないか。
(ねむねむ) 2017/06/07(水) 14:42

 A列「12456」でB列「20170606」は1つしか無いのですが・・・。

 A列「98475」でB列「20110304」が両方「1」となってるのは、
 C列に「2」を入力できる、A列が「98475」でB列が「20110303」があるからです。

 タイトルの「・・・2つに番号をつけたい・・・」、
 文章中の「・・・同じA列B列の場合は同じものと見做したいです。 」
 という言葉に包含したつもりでした。。。

 逆に、A列が「37523」でB列が「20170505」の2つの行、
 A列が「56789」でB列が「20160304」の1つの行は、
 それぞれA列が同じであっても、C列に「2」を入力する対象がないため「−」となります。

 以下、分かりやすく並び替えました。

 A列  	  B列	   C列

 12456	20170606	1
 12456	20170605	2
 12456	20170506	-

 98475	20110304	1
 98475	20110304	1
 98475	20110303	2

 37523	20170505	-
 37523	20170505	-

 56789	20160304	-

(集計係) 2017/06/07(水) 21:19


 37523	20170505	-
 56789	20160304	-

 98475	20110303    2
 上二つが - なのに、下が2になるのが解せない。
 そこが - でよければ、以下の式でどうですか?

 =IF(SMALL(IF($A$1:$A$9=A1,$B$1:$B$9,""),1)=B1,"-",IF(LARGE(IF($A$1:$A$9=A1,$B$1:$B$9,""),1)=B1,1,CHOOSE(MIN(3,SUMPRODUCT(($A$1:$A$9=A1)*($B$1:$B$9>=B1))),1,2,"-")))
 これで配列数式として確定

 C列が提示された結果 D列が計算結果
    |[A]  |[B]     |[C]|[D]
 [1]|12456|20170506|-  |-  
 [2]|12456|20170605|  2|  2
 [3]|12456|20170606|  1|  1
 [4]|37523|20170505|-  |-  
 [5]|37523|20170505|-  |-  
 [6]|56789|20160304|-  |-  
 [7]|98475|20110303|  2|-  
 [8]|98475|20110304|  1|  1
 [9]|98475|20110304|  1|  1
(稲葉) 2017/06/08(木) 08:35

 取り下げます。
 2番目に大きい値が複数あった場合、 - となってしまいます。

 上の投稿は無視してください。
(稲葉) 2017/06/08(木) 09:01

 すまない。
 >12456	20170506	-
 20170506を20170606と見誤っていたようだ。
(ねむねむ) 2017/06/08(木) 09:54

 作業列を使う。
 C1セルに
 =IF(COUNTIFS(A$1:A1,A1,B$1:B1,B1)=1,B1,"")
 と入力して下へフィルコピー。
 D1セルに
 =IF(OR(SUMPRODUCT((A$1:A$9=A1)*(C$1:C$9<>""))=1,COUNTIFS(A$1:A$9,A1,C$1:C$9,">"&C1)>1),"-",COUNTIFS(A$1:A$9,A1,C$1:C$9,">"&C1)+1)
 と入力して下へフィルコピーではどうか。
(ねむねむ) 2017/06/08(木) 09:55

 すまない。
 上の式だと1が複数、2が複数の場合に正しい値にならない。
 D1セルの式を
 =IF(C1="",INDEX(D$1:D1,MATCH(1,INDEX((A$1:A1=A1)*(B$1:B1=B1),0),0)),IF(OR(SUMPRODUCT((A$1:A$9=A1)*(C$1:C$9<>""))=1,COUNTIFS(A$1:A$9,A1,C$1:C$9,">"&C1)>1),"-",COUNTIFS(A$1:A$9,A1,C$1:C$9,">"&C1)+1))
 としてくれ。
(ねむねむ) 2017/06/08(木) 11:10

 こんばんわ。

 こんな式で出来ると思います。
 C1 =IF(COUNTIFS(A:A,A1,B:B,"<>"&B1)=0,"-",IF(COUNTIFS(A:A,A1,B:B,">"&B1)=0,1,IF(COUNTIFS(A:A,A1,B:B,">"&B1,B:B,"<"&AGGREGATE(14,6,1/(A$1:A$9=A1)*B$1:B$9,1))=0,2,"-")))
 下にフィルコピー

(sy) 2017/06/08(木) 21:48


コメント返信:

[ 一覧(最新更新順) ]


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