『MATCHの計算結果について』(初心者)
エクセルのシートのセルの以下の範囲に 1 を入力します。
A01:BH1 AE2:AN2,AY2:BH2 U3:AD3,AY3:BH3 K4: T4,AY4:BH4 A5: J5,AY5:BH5
次に、それぞれのセルに計算式をいれます。
CD1=MATCH(1,A1:CB1,1) CD2=MATCH(1,A2:CB2,1) CD3=MATCH(1,A3:CB3,1) CD4=MATCH(1,A4:CB4,1) CD5=MATCH(1,A5:CB5,1)
このとき、CD2 の値だけ40になります。
これはこういう仕様なのでしょうか?
それともバグなのでしょうか?
仕様だとすれば、なぜこのようになるのでしょうか?
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
バグでありません。仕様です。 MATCH関数で照合の型に1を指定する場合、検索範囲は昇順で配置しなければなりません 検索範囲が昇順になっていない場合、結果は保証されません。 二分探索するので。
二分探索については調べてみてください (´・ω・`) 2026/03/19(木) 13:25:36
1行目最小値=41,最大値=60 2行目最小値=31,最大値=60 3行目最小値=21,最大値=60 4行目最小値=11,最大値=60 5行目最小値=1,最大値=60 (初心者) 2026/03/19(木) 13:54:44
左端 =XMATCH(1,A2:CB2,0,1) 右端 =XMATCH(1,A2:CB2,0,-1) (´・ω・`) 2026/03/19(木) 14:03:13
検索範囲が昇順ではなくて、検索範囲のデータが昇順になっていなければ ならないということですよね。
今回は範囲が80なので40から検索をはじめて 2行目の40番に1があり、41番目が1ではないのでそれ以降に1がないと判断し それ以外の行では40番に1がなく空なので(空<1)右側に検索し、 最初に見つけた1の位置から1が続く最終の80番目を 答えとしているというわけですよね。 (初心者) 2026/03/19(木) 14:08:40
Excel内部でどのように実装されているかはわかりませんので、なんともいえませんが、 >2行目の40番に1があり、41番目が1ではないので 二分探索なので、「40番」のあとに「41番」をチェックすることはないでしょう (´・ω・`) 2026/03/19(木) 15:36:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.