[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ナンバーを求める』(木村)
こんにちは。質問させていただきます。
Sheet1に以下のような数字を入力しています。
A1=2019(西暦)
B1=(今回求めたい関数)
Sheet2に以下のような数字が入っているとします。
Sheet1のB1に以下を参照させて、西暦ごとの最大値を求め、それに+1して、
西暦ごとの直近のナンバーを求めたいというものです。
A1=2019ならば、201905となり、
A1=2020ならば、202003となります。
A1=2021ならば、202101としたいのです。
どうぞよろしくお願いいたします。
__A______B____
3_201901_2019
4_201902_2019
5_201903_2019
6_201904_2019
7_202001_2020
8_202002_2020
・
・
・
< 使用 Excel:Excel2013、使用 OS:Windows7 >
>201905
↑ の「05」は、5月という意味ではなく、単なる連番ですよね? つまり、最大値が 201912 なら 201913 になればいいんですよね?
Sheet2のA列は、例のように昇順になっているという前提で
=IF(A1="","",IFERROR(LOOKUP(1,0/(Sheet2!B3:B100=A1),Sheet2!A3:A100+1),A1*100+1))
以上です (笑) 2019/08/06(火) 11:37
ちなみに、Sheet2のA列が昇順ではない場合
=IF(A1="","",IF(COUNTIF(Sheet2!B3:B100,A1),MAX(INDEX((Sheet2!B3:B100=A1)*Sheet2!A3:A100,0))+1,A1*100+1))
ただし、Sheet2のA列は数式で空白にしていない(文字列はない)という前提
参考まで (笑) 2019/08/06(火) 11:50
B1に
=IF(ISNA(MATCH(A1,Sheet2!B3:B11,0)),A1*100+1,MAX(IF(Sheet2!B3:B11=$A$1,Sheet2!A3:A11,0))+1)
として Ctrl+Shift+Enter で 配列数式として確定、ではどうでしょう?
(渡辺ひかる) 2019/08/06(火) 12:05
MAXIFS関数使えば簡単そうだけど、Excel2013だとそうもいかなそうなので代理検索
http://excel-forest.net/2017/01/18/saidai/
↑を参考に配列数式を使うと解決しそうです。
こんな感じになればokっぽい {=MAX(IF(Sheet2!B3:B9=A1,Sheet2!A3:A9))+1}
(もこな2) 2019/08/06(火) 12:26
一応、言っておくと Sheet2のA列が昇順ではなく、かつ数式で空白にしている場合
=IF(A1="","",IF(COUNTIF(Sheet2!B3:B100,A1),MAX(INDEX((Sheet2!B3:B100=A1)*(0&Sheet2!A3:A100),0))+1,A1*100+1)) ~~~~~~~~~~~~~~~~~~ もちろん普通に Enter だけで確定(1つ目、2つ目の回答も同じ)
範囲は実際の表に合わせて下さい。
参考まで (笑) 2019/08/06(火) 12:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.