エクセルについて質問です。 下記の画像のように、赤枠の過去3回(3日ではない)の契約日の日付を表したいです。

画像

Excel | Office系ソフトウェア47閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0
画像

ご回答ありがとうございます。 お返事遅れました。 上記で反映できましたが、初月の時例えば最初に契約1しか獲得していないのに過去3つとも同じ日にちが反映されてしまいました。 例:4/1現在 契約1 4月1日 4月1日 4月1日 月で締めているので、過去2回は空白にしたいのですが可能でしょうか。 よろしくお願いします。

ThanksImg質問者からのお礼コメント

皆さんご回答ありがとうございました。 一番分かりやすく簡単にできたものを選ばせていただきました。 ご協力ありがとうございます!

お礼日時:5/13 13:24

その他の回答(3件)

0

作業表を作ります。 画像の例で数式を示します。 G4セルに以下の数式を入力 =IF($B4>G$3-1,$A4,"") この数式をG4:K11にコピー C2セルに =LARGE(G4:K11,3) D2セルに =LARGE(G4:K11,2) E2セルに =LARGE(G4:K11,1) 契約数の最大値、日付の件数に合わせて作業表を拡大し、拡大した範囲に合わせて数式のコピー先とLARGE関数の G4:K11 を変えてください。

画像
0

作業列を作って対応します。 例えばG4セルには次の式を入力して下方にドラッグコピーします。 =IF(OR(B4="",B4=0),"",SUM(B4:INDEX(B4:B100,MATCH(10^10,B4:B100)))) H4セルには次の式を入力して下方にドラッグコピーします。 =IF(G4="","",IFERROR(IF(SMALL(G:G,RANK(G4,G:G,1)-1)>=3,"",MAX(H$3:H3)+1),0)) 最後のお求めの表ですがC2セルには次の式を入力してF2セルまで横にドラッグコピーすればよいでしょう。 =IFERROR(IF(COUNTIF($B$2:B$2,INDEX($A:$A,MATCH(LARGE($H:$H,1),$H:$H,0)))<VLOOKUP(INDEX($A:$A,MATCH(LARGE($H:$H,1),$H:$H,0)),$A:$B,2,0),INDEX($A:$A,MATCH(LARGE($H:$H,1),$H:$H,0)),IF(COUNTIF($B$2:B$2,INDEX($A:$A,MATCH(LARGE($H:$H,2),$H:$H,0)))<VLOOKUP(INDEX($A:$A,MATCH(LARGE($H:$H,2),$H:$H,0)),$A:$B,2,0),INDEX($A:$A,MATCH(LARGE($H:$H,2),$H:$H,0)),IF(COUNTIF($B$2:B$2,INDEX($A:$A,MATCH(LARGE($H:$H,3),$H:$H,0)))<VLOOKUP(INDEX($A:$A,MATCH(LARGE($H:$H,3),$H:$H,0)),$A:$B,2,0),INDEX($A:$A,MATCH(LARGE($H:$H,3),$H:$H,0)),""))),"") なお、作業列が目障りでしたらそれらの列を選択して「非表示」にすればよいでしょう。

0

過去に契約日が 4日あるとどうするのですか とりあえず 直近の3日としました。 F5に =COUNTIF(B$5:B5,">0") 以下オートフィル C3に =INDEX($A:$A,MATCH(MAX($F:$F)+COLUMN(A1)-3,$F:$F,0)) といれ 右にオートフィル

画像