アプリ版:「スタンプのみでお礼する」機能のリリースについて

日付,数値1,数値2,数値3,数値4,......数値20
20181230,10,1,6,12,7,3,5.....
20181231,1,3,7,2,5......
20190101,7,9,3,11,15,4,6,.....
20190102,10,11,14,2,6,7,.....
上記の表がシートDBにあり、シート1のセルA2に20190101、B2に9があり、C2に3を返す関数を教えて下さい(4行目20190101行にある9が、3番目にあるという意味で3を返す関数)。
MATCH(A2,DB!A:A,0)で得た4を使ってMATCH(B2,DB!A4:T4,0)で出ると思うのですが、一つの式にしたいのです。関数に関数で得た値をセル位置?とするにはどうすればよいのか、教えていただけないでしょうか、よろしくお願い致します。

A 回答 (4件)

(´・ω・`)?


日付を検索して、「20190101」に該当する行にある「9」が何列目にあるかを知りたいということでしょうか。

日付の検索は
 =MATCH(A2,DB!A:A,0)
でOK。
問題ありません。
「4」と言う数字が返ってくるでしょう。

続いて横方向への検索になりますね。
 =MATCH(B2,DB!A4:T4,0)
でOK。
問題ありません。

質問は「この横方向の検索に使うMATCH関数に、前のMATCH関数をどう組み合わせればよいか分からない」ということですので、
ここはOFFSET関数を使うことを勧めてみます。
OFFSET関数は指定した基準のセルからどれだけずれた場所のセルを参照するかと言う関数です。
 =OFFSET( 基準 , 行数 , 列数 [, 高さ , 幅] )
のようにして使います。
[ ] で囲まれた部分は省略可能ですが、その場合は1つのセルとして参照範囲が決まります。
質問のケースでは、この「高さ」を「1」、「幅」をデータのある列の数にする事で利用可能と思います。
例えば
 OFFSET(Sheet2!A1,3,0,1,20)
とすると、
 Sheet2のA1セルから3つ下、右へ0のセルから、高さ1、幅20の範囲
ということで
 Sheet2!A4:T4
の範囲が返ります。

さあ、あとはどこにどの数字を入れればいいかは分かるよね。
がんばれ。


・・・余談・・・

ハッキリ言って分かりにくい質問です。
10分以上読み直して、ようやく意図を掴めたという感じ。


別回答でINDIRECT関数についても書いてみようかと思ったけど、ここで簡単に説明してみる。
INDIRECT関数は文字を範囲に置き換える関数です。
「A」と言う文字と「4」と言う数値を繋げてINDIRECT関数に入れると、A4と言うセルを参照することができるようになるってもの。
 =INDIRECT("A" & 4)
他にも
 =INDIRECT("Sheet2!A" & F1 & ":T" & F1)
としたときにF1セルに「4」が入力されていれば、
 Sheet2!A4:T4
を参照してくれます。

視覚的にはこのほうが分かりやすいかもしれないけど、あまりお勧めはしない。
視覚的ということは中身をイメージできないと逆に分かりにくいものになるからだ。
    • good
    • 0
この回答へのお礼

=MATCH(B2,OFFSET(DB!A1,MATCH(A2,DB!A:A,0)-1,0,1,20),0)でできました。
行数の項で-1にすることに気付くまで四苦八苦でした。
ありがとうございました。
私が知りたかったのはINDIRECT関数でした。でもあまり推奨できないという事なので(その意味は年老いた私には分かりませんが)、OFFSET関数も勉強できてとてもすっきりしました。本当にありがとうございました。

お礼日時:2019/01/05 11:45

》 …で出ると思うのですが…


何をなさっているのやらサッパリポン!
    • good
    • 0

市役所などの自治体が行っているパソコン相談で相談したほうが良いと思います。

    • good
    • 0

よくは 読み取れてません、



Excelが 使えるなら、
Excelシートで.
示して 頂けませんか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!