[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.