Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2019)
最新のものに印をつけたい
投稿日時: 23/05/12 18:14:11
投稿者: ラングドシャ

よろしくお願いいたします。
 

	B	C	D	E	F   G   H
2	品番	個数	単価	0個削除	更新 日付  最新
3	A001	10000	100	A001	B   5/11  1
4	A001	30000	80	A001	B   5/11  1
5	A001	50000	50	A001	B   5/11  1
6	B001	0	90		C   5/11  1
7	B001	10000	90	B001	C   5/11  1
8	B001	30000	80	B001	C   5/11  1
9	B001	50000	70	B001	C   5/11  1
10	A001	10000	100	A001	A   5/8
11	A001	30000	80	A001	A   5/8
12	A001	50000	50	A001	A   5/8
13	B001	0	90		B   5/8
14	B001	10000	90	B001	B   5/8
15	B001	20000	85	B001	B   5/8
16	B001	40000	75	B001	B   5/8
17	B001	0	105		A   5/1 
18	B001	10000	100	B001	A   5/1 
19	B001	30000	90	B001	A   5/1 
20	B001	50000	80	B001	A   5/1 

 
商品の個数ごとの単価表があります。
F列に「更新」列があり、単価が更新されたりその他情報が更新されるとA⇒zへあがっていきます。
日付でソートしているので、更新列は後ろのアルファベットが上に並びます。
最新がわかるように、H列に常に最新のものに1を付けたいと思っていますがどのような関数が
ありますでしょうか?
わかりにくい説明申し訳ございません。
よろしくお願いいたします。

回答
投稿日時: 23/05/12 21:37:37
投稿者: Mike

ラングドシャ さんの引用:
わかりにくい説明申し訳ございません

仰るとおり、私には殆ど理解できませんでした。
例えば、「日付でソートしているので、更新列は後ろのアルファベットが上に並びます」とか。
「後ろのアルファベット」は、何処の後ろですか?

回答
投稿日時: 23/05/13 09:08:48
投稿者: WinArrow

ラングドシャ さんの引用:

わかりにくい説明申し訳ございません。

 
説明している本人が分からないものを
他人が分かるはずないでしょう。
少なくとも自分がわかるようにすることが先決です。
 
ソートの項目と、昇順/降順を明確にしましょう。
 
あなたが考えている「最新」の定義を明確にしてください。
 

回答
投稿日時: 23/05/13 09:15:59
投稿者: WinArrow

例示の表をみると、
「日付」に最大値に「1」をいれているように見えます。
「更新」のソートは、関係あるのですか?
 
日付の最大値と同じ日付だけならば、MAX関数を使って、
判断すればよいでしょう。
 
その時、ソートする悲痛はないと思いますが、別な目的でソートしているのでは?
 

投稿日時: 23/05/13 11:22:40
投稿者: ラングドシャ

Mike様
ありがとうございます。
後ろのアルファベット→ABCの場合、AよりCが後ろなので最新となり上に表示されるという
意味でした。質問を書き直してみました。よろしくお願いいたします。
  
WinArrow様
ありがとうございます。
>説明している本人が分からないものを
>他人が分かるはずないでしょう。
>少なくとも自分がわかるようにすることが先決です。
説明が独りよがりになり、初めて見ていただく方に対して分かりにくい説明になっていたらすみませんということです。
結果、やはりうまく伝えることができない説明文となってしまっていました。
申し訳ありません。
  
また、おっしゃる通り、結果的に日付の最大値に1が入ることになりますが、商品によって
その日付が違います。
質問を書き直してみました。よろしくお願いいたします。
  
  

	B	C	D	E	F   G   H
2	品番	個数	単価	0個削除	更新 日付  最新
3	A001	10000	100	A001	B   5/11  1
4	A001	30000	80	A001	B   5/11  1
5	A001	50000	50	A001	B   5/11  1
6	B001	0	90		C   5/11  1
7	B001	10000	90	B001	C   5/11  1
8	B001	30000	80	B001	C   5/11  1
9	B001	50000	70	B001	C   5/11  1
10	A001	10000	100	A001	A   5/8
11	A001	30000	80	A001	A   5/8
12	A001	50000	50	A001	A   5/8
13	B001	0	90		B   5/8
14	B001	10000	90	B001	B   5/8
15	B001	20000	85	B001	B   5/8
16	B001	40000	75	B001	B   5/8
17	B001	0	105		A   5/1 
18	B001	10000	100	B001	A   5/1 
19	B001	30000	90	B001	A   5/1 
20	B001	50000	80	B001	A   5/1 
21	C001	10000	200	A001	A   4/28  1
22	C001	30000	150	A001	A   4/28  1
23	C001	50000	130	A001	A   4/28  1

 
少し具体例を加えました。
このB〜G列は、あるシステムのデータを自動的に取得しています。
今回H列に関数を追加したいです。
  
商品が初めてリストに掲載された際「更新」列はAですが、その後変更が加わるるたびに
B→C→Dとして更新欄が変わっていきます。その変わった日がG列「日付」です。
※更新後一定期間が過ぎると古い情報は消えていきますが、しばらくは混在します。
  
この取得データは、日付降順、品番昇順でソートされているため、AよりBが上に表示される
ことになります。
  
今回H列に1を付けたいのは、商品ごとにF列:更新を比較し、最新だけに1をつけたいです。
上記表のC001のように最新がAしかない場合は、Aに1
B001はAとBとCがあり、Cが最新なのでCに1
といった具合です。
そして、商品は単価ごとに複数行あるのですべてに1を付けたいです。
例:A001の「F列の更新:B」は、3つの単価があるのでそれらすべてに1を付ける
 
これで伝わればいいのですが・・・
よろしくお願いいたします。

投稿日時: 23/05/13 11:29:36
投稿者: ラングドシャ

修正です。
 
商品が初めてリストに掲載された際「更新」列はAですが、その後変更が加わるるたびに
B→C→Dとして更新欄が変わっていきます。その変わった日がG列「日付」です。
 ↓↓↓
商品が初めてリストに掲載された際「更新」列はAですが、その後変更が加わるるたびに
B→C→Dとして追加されていきます。その追加日がG列「日付」です。
 
よろしくお願いいたします。

回答
投稿日時: 23/05/13 13:21:22
投稿者: んなっと

H2
=IF(AND(B1=B2,F1=F2),H1,IF(MATCH(B2,B:B,0)=ROW(),1,""))
下方向・↓

回答
投稿日時: 23/05/13 13:54:00
投稿者: WinArrow

ラングドシャ さんの引用:

商品が初めてリストに掲載された際「更新」列はAですが、その後変更が加わるるたびに
B→C→Dとして追加されていきます。その追加日がG列「日付」です。

 
要するに、品番ごとの最終日付が取得できればよいではないでしょうか?
 
H2に
=IF(F2=MAXIFS(F:F,A:A,A2),"1","")
でいかがでしょうか?
 
 

投稿日時: 23/05/13 14:42:23
投稿者: ラングドシャ

んなっと様
ありがとうございます。
無事、表示させることができました。
 
WinArrow様
ありがとうございます。
一部式を修正させていただきましたが、
無事、表示させることができました。