Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Microsoft 365)
match, indirectを現代的なspillでできないでしょうか。
投稿日時: 25/02/01 23:31:03
投稿者: kysn1122

よろしくお願いいたします。
 
最下段のデータについて
(例えば、シート「data」のa1からインプットされているとします。
 A列、B列、C列にデータが入っています)
やりたいことは
「A列のtimeから3であるセル=行を調べて、そのQの値を出したい」です。
 
 
今までだと、match関数とindirectを使って, 別のシートで下記の計算をしてました。
(下記がA1セルからインプットされているとして)
 
A列 B列. C列
time. 行 Q
3 =match(data!A:A, A2) =indirect("data!B"&B2)
 
これで、B2セルに4が、C2セルに3.1が、、と今まで抽出していました。
 
ですが、これだと、B列とC列の間で列を挿入すると、indirectの中の文字列を書き換える必要があり、
何より、行が膨大にありその全部に上記のしきを入れるのでワークブックが重くなってました。
これをspillを使って、最上段のデータ行(ここでは2行目)にspillを活用した式を入れることで
やりたいことを解決する方法はないでしょうか。
 
 
A列 B列 C列
time Q T
1.1 1.1. 10
2.1 2.3 10
3.2 3.1 10
4.1 5.1 11
4.2 1.1 12
5.1. 2.1 13

回答
投稿日時: 25/02/02 00:30:49
投稿者: んなっと

おそらく違っているでしょうが…
 
B2
=MATCH(A2:A6,data!A:A)    
C2
=INDEX(data!B:B,B2#)    
=XLOOKUP(A2:A6,data!A:A,data!B:B,"",-1)

回答
投稿日時: 25/02/02 07:23:35
投稿者: んなっと

提示された式 =match(data!A:A, A2) は誤りです。それから
 
●現在のシート←これを省かないでください。
 
   A  B  C
1 time 行  Q
2   3  3 2.3 ←dataシートのA列を検索
3   4  4 3.1   3を超えない最大の値2.1でヒット
4   5  6 1.1
5   6  6 1.1
6   7  6 1.1
 
●dataシート
 
   A  B  C
1 time  Q  T
2  1.1 1.1 10
3  2.1 2.3 10
4  3.2 3.1 10
5  4.1 5.1 11
6  4.2 1.1 12
 
MATCH関数の第3引数が省略されているので、こう解釈しました。

トピックに返信