• ベストアンサー

INDEX関数とMATCH関数(長文です)

kurikuri_maroonの回答

回答No.4

#3の者です。 すみません(^^;)。ケアレスミスをしてしまったようです。 ほんとうに申し訳ありません。 正しくは次のとおりです。 Sheet2とsheet3を先に作りましょう。 Sheet3のセルB2の「有り」は「1」に変更して下さい。 Sheet3のその他の部分はそのままです。 また、Sheet2の全体もそのままです。 (但し、Sheet2では「1」か「0」で補充の有無を入力します。) Sheet1の式に大きなミスがありました。 表はそのままですが、セルA2(元のB2は誤り)、セルB2(元のC2は誤り)の式はそれぞれ次のとおりです。 A2 =DMAX(Sheet2!A1:C5,Sheet2!A1,Sheet3!A1:C2) B2 =DATE(YEAR(A2)+0,MONTH(A2)+0,DAY(A2)+150) つまり、Sheet2にデータベースを作ります。 日付の昇順に並び替える必要はありません。但し、空行・空列・空白セルを作らないようにします。 セルA2の「Sheet2!A1:C5」がデータベースの範囲をあらわします。 同じく「Sheet2!A1」で抽出の対象となるフィールドを指定します。 データベースの中から「日付」を抽出するのですよ、ということを表計算ソフトに指示するわけですね。 また、「Sheet3!A1:C2」で検索条件を指定するわけですが、『「日付」を抽出するときに「追加補充」が「1」であるものを検索・抽出して下さい』ということなので、sheet3のように記入します。 で、最後に、Sheet1のセルA2にDMAX関数を用いて、抽出された日付のうち最大値のものを返すようにします。 すると、セルA2には、最終補充日が入ります。 この150日後が最終的に求めたい日になるわけですから、セルB2のように式を入れると、今度はきちんと計算されると思います。 自分で確認してみましたが、一応、ちゃんと動きました。 今度はどうでしょうか?ちょっと心配ですが(^^;)。

abesi
質問者

お礼

>「日付」を抽出するときに「追加補充」が「1」であるものを検索・抽出して下さい』ということ 関数は正常に動作したんですけど、もしsheet2のB5を「0」にして無しにするとします。 そうすると、B2は「1」になっているので、A1の日付を抽出するのかと思ったのですが、抽出しないんですが… 何度も回答してもらったのにすいません。ありがとうございました

関連するQ&A

  • INDEXとMATCH関数について。

    業務で使用しているファイルにINDEXとMATCHを組み合わせた関数を使っています。 =INDEX(Sheet4!E2:E999,MATCH(Sheet1!F17,Sheet4!A2:A999,0)+2,0) です。 教えて頂きたいことは、 ・上記の関数の説明(詳細)この関数はどういったしくみになっているのか。 ・セルが空白のときに#N/Aを表示させないこと。 ・完全一致型にしたいこと。 この3点を教えて頂けませんか?よろしくお願いします。

  • 【Excel】INDEXとMATCH関数で日付の期

    シートA:テーブルにて、日付・カテゴリ・項目 シートB:シートAから指定したカテゴリと日付の期間を抽出 シートBには、 B2でカテゴリ選択(例:野菜) C2で始まりの日付(例:12/1) D2で終わりの日付(例:12/7) ※野菜のカテゴリ かつ 12/1以上12/7以下 INDEXとMATCH関数を使いたいのですが、日付を期間として指定する方法がわかりません。 よろしくお願いします。

  • INDEX関数?それともMATCH関数?

    INDEX関数?それともMATCH関数? エクセル2000で下記の様な事をしたいのですが、どうしても分からず思い悩んでいます。 どなたか分かる方がいらしたら、教えてください。 【この表について】 ・予測A(行3)と予測B(行20)と予測(行30)は最初から入っている数値 ・結果A(行4)と結果B(行21)に左から1クール終わるごとに数値が入力される ・結果A(行4)と結果B(行21)に数値が入ると、実績(行31)が表示される ・(行38)と(行39)は予測Aに対する予測Bの割合 【やりたいこと】 <黄色のセル> (1)B31が表示されたらB38を表示 (2)B31~C31が表示されたらC38を表示 (3)B31~D31が表示されたらD38を表示 (4)B31~D31が全て空白ならばD38を表示 (FGHについても同様に表示させたい) →現在の数式は(1)~(3)についてはできるのですが、(4)の場合に#N/Aとなってしまいます。 <赤色セル> (1)B31が表示されたらB38を表示 (2)B31~C31が表示されたらC38を表示 (3)B31~D31が表示されたらD38を表示 (4)B31~D31とF31が表示されたらF39を表示 (5)B31~D31とG31が表示されたらG39を表示 (6)B31~D31とH31が表示されたらH39を表示 (7)B31~D31とF31~H31が全て空白ならばH39を表示 →これもINDEXやMATCHを使って色々考えてみたのですが、(7)の時が#N/Aとなってしまいます。 どうぞよろしくお願いします。

  • Excel INDEX関数ズレて抽出される

    INDEX関数で行列番号取得にMATCH関数を使用したときにズレてしまう。 定例のミーティングの参加表を作成しようとしています。 シートの構成は添付画像の通りです。 Sheet1 定例のミーティングの参加表 巡回Aは月ごとに担当者が変わる。 Sheet2 巡回Aの月別の担当表 巡回Aの担当表を用意して、COUNTIF関数で参加表の氏名が巡回Aのリストに含まれていない場合(カウント0)は空欄にし、0以外の場合、INDEX関数で列番号のところにMATCH関数をネスト、MONTH(TODAY())+1とし、ex. 8月なら翌月の9月に該当する列番号を抽出して巡回Aの出席を月が変わると連動するようにしたいです。 =IF(COUNTIF($B$22:$B$29,$B3)=1,IF(INDEX($C$22:$N$29,MATCH($B3,$B$22:$B$29,0),MATCH(MONTH(TODAY())+1,$C$20:$N$20,0))=0,"",INDEX($C$22:$N$29,MATCH($B3,$B$22:$B$29,0),MATCH(MONTH(TODAY())+1,$C$20:$N$20,0))),"") 職場のExcel2016では列がズレてしまい、抽出ができないです。 Excel365では問題なく抽出ができました。 2016でズレるのは何故でしょうか。 詳しい方居ましたらご教授下さい。 よろしくお願い致します。

  • MATCH関数?INDEX関数?

    いつもお世話になってます。 2のエクセルデータ、AとBがあります。 Aのファイルが基本ファイルで、Bファイルが必要項目をAより転記してみんなで閲覧するファイルです。 Aのファイルが下記のように入力されているとします…。  日付  No.  ロッド番号1 ロッド番号2  得意先           金額1 金額2 8/22  5-11   123               ○×商事          \100     8/23  5-12              555    △△株式会社      \200   8/24   5-13   124               有限会社◆         \500     \200 8/24   5-13                556    ○×商事          \300 8/25   5-14             557    有限会社◆         \800 ロッド番号1、ロッド番号2とそれぞれ別の商品があり、番号があり金額が入力されています。 No.は受付番号でロッド番号1、2をそれぞれ購入の場合は同じ受付番号を使います。 Bのファイルにはロッド番号1のシート、ロッド番号2のシートがありそれぞれAより、必要項目が転記されています。 これまではロッド番号をもとにVLOOKUP関数でBへ転記していましたが、No.が同じ場合にうまくいきませんでした。 おそらくMATCH関数、INDEX関数を使うのだと思いますが、どのように組んだらよいのかわかりません。 Aの項目内容は変えられません。 関数にお詳しい方、ご教授いただきたいです。

  • match関数とindex関数について

    index関数を次のように用いて、match関数で位置を取りだすことをしたいと考えています。 =index(0/$A$1:A20="休",0) matchは以下の上式を使って、以下のようにします。 =match(1,index(0/$A$1:A20="休",0)) この時、index内において、「休」だけでなく、「祝」も判定したいと考えた場合、上手い式の組み方は考えられるでしょうか。 ご教授願います。

  • ExcelでIndexとMatch関数が使いこなせない

    すみません、カテゴリを間違えてまして、再度投稿いたします。 有給管理表をExcelで作成しています。 シート1に社員のデータ表を入力してあり、 シート2には有給が発生する社員へ有給の残日数や 付与日に関するお知らせの案内状をB5サイズで作っています。 シート1のデータを拾って、シート2の案内状へ反映させる際、 付与日や残日数などはVlookupで参照できるのですが、 社員番号は退職した社員がいるため番号が飛んでいて うまくできません。 IndexやMatch関数を使えばなんとかなりそうだと思い やってみましたが、VALUE!が表示されてしまいます。 どなたかうまくいく関数を教えて頂けますでしょうか? シート1のデータ例  A列   B列   C列   D列    E列 社員番号  氏名  入社日  付与日   付与日数 100001   くま  2007/4/1  2007/10/1  10 100003   たぬき 2007/5/1  2007/11/1  10 100005   うさぎ 2007/5/10 2007/5/10  10  100010   きつね 2007/6/1  2007/12/1  10 シート2(例)ページ1    B列   C列 B1 社員番号  100001←ここに式を入れたい B2 社員氏名  くま  さん(vlookupでC1を拾ってくる) B4 あなたの有給付与日は  2007/10/1 です。付与日数は 10 日です・・・・・・。 シート2 ページ2 B30 社員番号  100003 (←ページ1の次の該当者を拾いたい) B31 社員氏名  たぬき  さん B33 あなたの有給付与日は 2007/11/1 です。 付与日数は 10 日です・・・・・・。 このような感じです。社員番号が飛んでいても下の行を拾っていくような関数はありますでしょうか?(Index、Match関数以外でも結構です)

  • INDEX関数を使用した関数の意味を教えてください。

    INDEX(sheet2!C:C,SMALL(INDEX((sheet2!$B$1:$B$100<>$B$18)*10^4+ROW($1:$100),),ROW(A1)))&"" sheet2にある表のB列に検索時に使用する文字列があり、sheet1のB18にその検索したい文字列を入力すると、一致したB列と同じ行のC列のデータを抽出する式です。 表のデータは今後も増加しますが、どの程度増加するは不明です。 INDEX関数やSMALL関数など一つ一つの関数の意味はわかっているつもりですが、なぜ上記のセルが選択されているのかわかりません。 特にSMALLの後の式がわかりません。 エクセル関数にはあまり詳しくないので、この式の意味をできれば詳しく教えていただけないでしょうか? (式の意味は人から聞いたものですが、違っていたらすいません)

  • MATCH関数とINDEX関数の組み合わせ方

    あるシートから別ファイルのシートへ、"金額の値"をコピーしたいのですが、 条件セルが元データでは縦2行(地域と商品名)、コピー先では(列)に配置されているため、 どうやって関数を組んだら良いのかわかりません。  関数ではなく、マクロにしないと無理でしょうか? (マクロでもいいのですが、コードがよくわからないので…)  又、地域はコードで番号順に並んでいますが、商品名はアルファベットと数字が混ざっており、 ソートされていない並び(変更不可)になっています。 Sheet1(元データ)    A      B    C 1 地域   商品名  金額 2 (01関東) (AS01) (200) 3 (01関東) (333B) (250) このSheet1の金額データを別ファイル:Sheet2の該当欄に表示させたい。 Sheet2(コピー先)   A           B     C      D 1 地域\ 商品名 (AS0100) (9999B) (AF205) 2 (01関東)       (200)   (300)   (250) 3 (02中部)       (50)    (250)    (290) どなたか、お知恵を拝借できれば幸いです。

  • INDEX MATCH HYPERLINK 

    こんにちは。 エクセル表で社員の勤怠を入力しています。 表はA1からL10までの範囲で、A1は空欄、B列は日付、C1からL1までは10/1から10/10までの日付が入力されています。A2はCODE、B2は氏名の列の項目名、C2からL10までは曜日が入力されています。A3から下にA10までの列はそれぞれ社員コードとなる数字が、B3から下にB10までは社員名が 入力されています。C3からL10までは特に何も入力されていない状態ですが、入力規則でリストから、項目を選ぶ形式です。また、C3からL10までは検索スペースという名前をつけてあります。入力作業の補助のために、N4のセルに日付を入力し、N7に社員コードを入力して、N12をクリックすると、表の該当の箇所にジャンプする関数を作成したいのですが、うまくいきません。 式は、=IF(ISERROR(HYPERLINK("#検索スペース"&INDEX($B$2:$L$10,MATCH(N4,$C$1:$L$1,0),MATCH(N7,$A$3:$A$10,0)),"検索")),"値を入力してください!",HYPERLINK("#検索スペース"&INDEX($B$2:$L$10,MATCH(N4,$C$1:$L$1,0),MATCH(N7,$A$3:$A$10,0)),"検索"))です。 N12をクリックすると「参照が正しくありません」とエラーメッセージが現れます。どこがおかしいのか、教えてくださえるかた、お願いします。 説明が悪いようでしたら補足いたしますので、ご質問ください。 よろしくお願いします。