『納期管理表の作成』(うるん)
納期管理表の作成
みなさまこんばんは。
是非お力を貸して頂きたく投稿してみます。
やりたいことは下記のようなことです。
シート1枚目(手打ち)
a(社名) b(注文) c(納期) 1 a社 24/4/2 24/10/1 2 a社 24/4/1 25/10/1 3 b社 24/4/2 24/10/2 4 c社 24/4/1 24/10/2 5 c社 24/4/2 24/10/1 6 d社 25/4/2 25/10/2
↓
シート2枚目(全自動反映)
a(社名) b(注文) c(納期) 1 a社 24/4/1 24/10/1 2 a社 24/4/2 24/10/2 3 b社 24/4/2 24/10/2 4 c社 24/4/2 24/10/1 … … … 11 c社 24/4/1 25/10/3 12 d社 25/4/2 25/10/2
このように並べ替えてくれるようなシートを作成したいです。
並び替えの条件としては
(1) 注文日を早い順に並べ替え
(2) 注文日が同日の場合は社名を若い順に並べ替え
(3) 注文日と社名が同値の場合は納期の早い順に並べ替え
(4) ただし納期が来期(以降)の場合は11行目から並べるとし、別途(1)〜(3)の条件を当てはめる
現在は(1)〜(3)までをフィルタのソート機能で手動で昇順or降順で並べ替え
(4)の納期が来期以降のものについてはd列に
=IF(YEAR(EOMONTH(C1,-3))<=YEAR(EOMONTH(TODAY(),-3)),"1","2")
を書き込んで場合分けし、無理やり行挿入して合わせている状態です。
※ソートはc列→b列→d列の順
毎回情報を書き加えるたびにソートし直さないといけないので
なんとか自動化できないかとあれこれ調べているのですが、うまいこといかず…。
何かよい案がありましたら、是非ご教示頂きたいです。
宜しくお願い致します。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
シート2は今期と来期以降の2つのテーブルを作ればいいのでは?
FILTER関数とSORT関数が使えれば関数だけでできると思いますが、 2019ではSORT関数が使えない野でしたっけ?
関数でできない場合は、PowerQuery(データの取得と変換)がおすすめです (´・ω・`) 2024/04/09(火) 14:45:56
2019はFITLER関数使えないそうです
他の有識者の回答をお待ちください。 (´・ω・`) 2024/04/09(火) 16:55:02
●Sheet1 A B C D E 1 a社 24/4/2 24/10/2 12404020000241002 1 2 a社 24/4/1 25/10/1 22404010000251001 11 3 b社 24/4/2 24/10/2 12404020003241002 2 4 c社 24/4/1 25/10/3 22404010004251003 12 5 c社 24/4/2 24/10/1 12404020004241001 3 6 d社 25/4/2 25/10/2 22504020006251002 13 7 a社 24/4/5 24/10/2 12404050000241002 4
D1 =IF(A1="","",IF(YEAR(EOMONTH(C1,-3))<=YEAR(EOMONTH(TODAY(),-3)),1,2)& TEXT(B1,"yymmdd")&TEXT(COUNTIF(A$1:A$100,"<"&A1),"0000")&TEXT(C1,"yymmdd")) 下方向・↓ E1 =IF(D1="","",COUNT(INDEX(0/(D$1:D$100<D1)/(LEFT(D$1:D$100)=LEFT(D1)),))+1 +(LEFT(D1)="2")*MAX(10,COUNT(INDEX(0/(LEFT(D$1:D$100)="1"),))+1)) 下方向・↓
●Sheet2
A B C 1 a社 24/4/2 24/10/2 2 b社 24/4/2 24/10/2 3 c社 24/4/2 24/10/1 4 a社 24/4/5 24/10/2 5 6 7 8 9 10 11 a社 24/4/1 25/10/1 12 c社 24/4/1 25/10/3 13 d社 25/4/2 25/10/2
A1 =IFERROR(INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!$E:$E,0)),"") 右方向・→下方向・↓ (んなっと) 2024/04/09(火) 17:51:01
E1 =IF(D1="","",COUNT(INDEX(0/(D$1:D$100<D1)/(LEFT(D$1:D$100)=LEFT(D1)),))+COUNTIF(D$1:D1,D1) +(LEFT(D1)="2")*MAX(10,COUNT(INDEX(0/(LEFT(D$1:D$100)="1"),))+1))
(んなっと) 2024/04/11(木) 16:39:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.