INDEX関数? MATCH関数? Excel2000での操作方法についての質問

このQ&Aのポイント
  • Excel2000で行った特定の操作についてわからず困っています。詳細な操作内容と、それに対する解決策を教えてください。
  • 特定の操作に関してINDEX関数とMATCH関数の使用を考えていますが、一部でうまく機能しない状況が発生しました。どのような状況か詳細に説明し、解決策を教えてください。
  • Excel2000での操作において、特定の条件下でうまく動作しないケースがあります。具体的な条件とその解決策を教えてください。
回答を見る
  • ベストアンサー

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となってしまいます。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

ごめんなさい。ご質問を勘違いしていました。 E30セルには次の式を入力します。 =IF(COUNT(B31:D31)=0,D38,INDEX(B38:D38,COUNT(B31:D31))) I30セルには次の式を入力します。 =IF(COUNT(F31:H31)=0,H38,INDEX(F38:H38,COUNT(F31:H31))) J30セルには次の式を入力します。 =IF(COUNT(B31:D31,F31:H31)=0,H39,IF(COUNT(B31:D31,F31:H31)<=3,INDEX(B39:D39,COUNT(B31:D31)),IF(COUNT(B31:D31,F31:H31)>3,INDEX(F39:H39,COUNT(B31:D31,F31:H31)-3),""))) いずれのセルもセルの表示形式はユーザー定義で 00.00% のようにします。

somesyun
質問者

お礼

ご丁寧に教えていただいて、ありがとうございました。 これですべてうまくいきました! 本当に助かりました。

その他の回答 (4)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆画像を添付間違いしました

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>(4)B31~D31が全て空白ならばD38を表示 >(FGHについても同様に表示させたい) > >→現在の数式は(1)~(3)についてはできるのですが、(4)の場合に#N/Aとなってしまいます。 実際に入力されてる数式などの詳細がわからないのですが、少なくとも(1)~(3)までの場合は表示できているのであれば、最後の「B31~D31が全て空白ならばD38を表示」のIF文を最初に設定すればご希望の表示はできるはずです。 =IF(COUNT(B31:D31)=0,D38,元の数式) このような対応でうまくできないのであれば、現在のシートの各セルに入力されている数式を提示してください。

somesyun
質問者

お礼

ご回答ありがとうございました。 お礼が大変遅くなりまして、申し訳ございません。 うまくいきましたが、今回は別の方の回答を採用させて頂いたので、ベストアンサーに出来なくてすみません。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

1)予測:B30=B20/B3 2)右にコピー、F30:H30にもコピー 3)実績:B31=IF(COUNT(B4,B21)<2,"",B21/B4) 4)右にコピー、F31:H31にもコピー 5)B38=SUM($B$20:B20)/SUM($B$3:B3) 6)右にコピー 7)F38=SUM($F$20:F20)/SUM($F$3:F3) 8)右にコピー 9)F39=SUM($B$20:$D$20,$F$20:F20)/SUM($B$3:$D$3,$F$3:F3) 10)右にコピー 11)上半期予測A:E3=SUM(OFFSET(B3,,,,COUNT(B4:D4))) 12)上半期結果A:E4=SUM(B4:D4) 13)E3:E4をコピーして、E20:E21,I3:I4,I20:I21に貼り付けします 14)上半期予測(黄色のセル):E30=INDEX(B38:D38,COUNT(B31:D31)) 15)E30の式を、I30にコピー 16)上半期実績:E31=E21/E4 17)E31の式を、I31にコピー 18)赤色のセル:J30=IF(COUNT(B31:D31,F31:H31)>0,IF(F31="",INDEX(B38:D38,COUNT(B31:D31)),INDEX(F39:H39,COUNT(F31:H31))),F39)

somesyun
質問者

お礼

丁寧なご回答ありがとうございました。 お礼が大変遅くなりまして、申し訳ございません。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

INDEX関数を使うことになるでしょう。 B38セルには次の式を入力してD38セルまでオートフィルドラッグします。 =IF(AND(COUNT($B31:$D31)=0,COLUMN(A38)=3),SUM($B20:$D20)/SUM($B3:$D3),IF(COLUMN(A38)<=COUNT($B31:$D31),SUM($B20:INDEX($B20:$D20,COLUMN(A38)))/SUM($B3:INDEX($B3:$D3,COLUMN(A38))),"")) F38セルには次の式を入力してH38セルまでオートフィルドラッグします。 =IF(AND(COUNT($F31:$H31)=0,COLUMN(A38)=3),SUM($F20:$H20)/SUM($F3:$H3),IF(COLUMN(A38)<=COUNT($F31:$H31),SUM($F20:INDEX($F20:$H20,COLUMN(A38)))/SUM($F3:INDEX($F3:$H3,COLUMN(A38))),"")) F39セルには次の式を入力してH39セルまでオートフィルドラッグします。 =IF(AND(COLUMN(A39)=3,COUNT($B31:$D31,$F31:$H31)=0),SUM($B20:$D20,$F20:$H20)/SUM($B3:$D3,$F3:$H3),IF(COUNT($B31:$D31,F31)=4,(SUM($B20:$D20)+SUM($F20:INDEX($F20:$H20,COLUMN(A39))))/(SUM($B3:$D3)+SUM($F3:INDEX($F3:$H3,COLUMN(A39)))),""))

somesyun
質問者

補足

早速のご回答、ありがとうございます。 オレンジのセルは予測Aに対する予測Bの割合を%で表示させているだけなので、実際は非表示にするつもりです。 例えばB38=SUM($B$20:$B$20)/SUM($B$3:$B$3)、C38=SUM($B$20:$C$20)/SUM($B$3:$C$3)と入れています。 オレンジのセルの数字が表示されるように黄色と赤のセルに数式を入れたいのですが、可能でしょうか?

関連するQ&A

  • INDEXとMATCH関数について。

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

  • エクセルのMATCH関数について

    エクセルのMATCH関数についての質問ですが、どうしてもエラーが表示され悩んでいます。どうか教えていただければと思います。 たとえば下記のような場合なぜかエラーが発生してしまいますがどうしてでしょうか?      A列   B列   C列   D列   E列   F列 1行              A     B    A+B  戻り値 2行    2.0        1.0    1.2   2.2   2 3行    2.2        0.9    1.1   2.0   1 4行    2.4        1.1    1.3   2.4   #N/A 5行    2.6        1.0    1.4   2.4   3 使用している関数は、 E列2行 =C2+D2  F列2行 =MATCH(E2,$A2:$A5,0) E列3行 =C3+D3  F列3行 =MATCH(E3,$A2:$A5,0) E列4行 =C4+D4  F列4行 =MATCH(E4,$A2:$A5,0) E列5行 =C5+D5  F列5行 =MATCH(E5,$A2:$A5,0) です。ここでどうしても、F列4行にエラー値(#N/A)が発生してしまいます。どうしてでしょうか? E列4行とE列5行は同じ値にもかかわらず戻り値が違うのはどうしてでしょうか? また、不思議なことにE列4行に手入力で2.4の値を入力した場合は戻り値は3となり、正しい値を表示します。どうしてでしょうか? 以上、よろしくお願いします。

  • MATCH関数について。

    いま、情報処理検定2級の勉強をしています。 そこでINDEX関数を用いる問題が出たので、INDEXとMATCHのネストを作りました。 =INDEX($C$20:$F$24,MATCH(G5,$C$19:$F$19,0),MATCH(H5,$B$20:$B$24,0)) こんな感じになりました。 でも、エラーが起きました。MATCH(H5,$B$20:$B$24,0))のところのセルH5には「1」とあり、B20:B24には「1回目」~「5回目」とセルに入力してありました。なので、一致しないからだと思いました。 そこで質問です。このような場合、どのようにすればエラーが起きないで戻り値が出るのでしょうか。 わかりにくい文章ですけど、教えてください。

  • エクセルでのインデックス関数について

    エクセルで任意の二列からセルの中身を引っ張ってきて組み合わせるものを作成しているのですが、うまくいきません。 以下のページを参考に作成しました http://okwave.jp/qa/q5883947.html 添付画像ではB、C列の2行目に結果が出るようにしてE,F列にランダムに取りたい値、G,H列に乱数を表示させています また、B2のセルには =INDEX($E$2:$F$100,MATCH(MIN(G$2:G$100),G$2:G$100,0),COLUMN(B1)) C2のセルには =INDEX($E$2:$F$100,MATCH(MIN(H$2:H$100),H$2:H$100,0),COLUMN(C1)) と入れてあります なぜエラーが出るのかが全くわからなく、困っています ご存知の方、どうかよろしくお願いいたします

  • エクセル matchとindex関数について

      A    B   C    D   E 1         商品1 商品2 商品3 2 A社 a工場  100  200  300 3 A社 b工場  150  250  350 4 B社 a工場  200  400  600 5 B社 b工場  300  600  900 検索条件が複数ある場合、例えば 「A社」「b工場」の「商品3」の値段「350」を出したければ 式はどのようになりますか? matchとindexを組み合わせていろいろ考えてみましたがうまくいきませんでした。 勉強不足で申し訳ありませんが、どうぞみなさまのお力をお貸しください。 matchとindex以外にも使える関数があれば教えてください。

  • エクセル MATCH関数について

    エクセル2013の練習でMATCH関数とINDEX関数を利用した データを作っていました。 添付した画像のD79でMATCH関数を使って番号を表示しています。 D79に入力した式は=MATCH(C79,B73:B76)です。 指定の行はB73~B76までの4行で、春、夏、秋、冬の順番で並んでいますが C79に春と入力すると、順番としては1番目の春が何故か3と表示されます。 他の夏、秋、冬は順番通り2,3,4と結果が表示されます。 シートの設定を変にしてしまったのかもしれないと新規で開いて試しましたが結果は同じでした。 MATCH関数の検索を行ではなく列側に変えて試しもしましたが、結果は同じでした。 春以外の言葉や数字だとこのようなことは起こりません。 また、リストにしても直接打ち込みにしても同じ結果でした。 この現象を春を使用しない以外に回避する方法がありますでしょうか? 宜しくお願い致します。

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

    B列に空白を含む連続した数値の配列において、空欄と空欄の間の数値の個数を数える式として、以下の式を見たことがあります。 =IF(AND(B9<>"",B10=""),IF(ROW(B9)=COUNT($B$1:B9),ROW(B9),ROW(B9)-MATCH(1,INDEX(0/($B$1:B9=""),0))),"") 確かにこの式で求める答えが出るのですが、式の最後の「MATCH(1,INDEX(0/($B$1:B9=""),0)」の意味がよく分かりません。 ・MATCH関数の範囲としているINDEXの内容はどういう意味なのか ・MATCH関数の検査値としている「1」はどういう意味なのか ご教授願います。

  • EXCEL2000で関数INDEXとMATCHを使った際の表示について

    EXCEL2000で関数INDEXとMATCHを使った際の表示について お聞きしたいのですが、別シートでリストが有りそのリスト内のリストNoを別シートで入力すると項目が自動表示される様に関数を入力したのですが、リストでは1行に2段表示にして作成しているのですが別シートに自動表示した際1行で表示されます。リストと同じ表示するにはどうすればよいのでしょうか、わかる方宜しくお願いします。 ちなみにわかりずらいかもしれませんが現在下記の様に表示されます。 現在の関数式 =INDEX(**リスト!$B$4:$B$50,MATCH(**データ!D2,**リスト!$A$4:$A$50,0)) 表示例 (リスト側)        (データ側)     A(列)           A(列)  1(行) あああ    1(行) あああいいいいい   いいいいいい 

  • エクセルのMATCH関数について

    エクセルのMATCH関数を使って“E18:E23”の表から125以下の1番目の値相当する”“E11:E16”の値を取り出す計算式を作成しています。(“E18:E23”表のそれぞれの行の数値が“E11:E16”の表のそれぞれの行の数値のリンクしています。そのときの数式が“=INDEX(E11:E16,MATCH(125,E18:E23,1),1)”です。この場合は上手くいくのですが、条件を“125以上の1番目の値相当するを作成して、”=INDEX(E11:E16,MATCH(125,E18:E23,-1),1)“の様にMATCHの式の最後を-1にするんですが、”#N/A“のエラーメッセージが表示します。どうすればいいのでしょうか?(*なお表“E18:E23”は数値が小さい順ですが、表“E11:E16”そうとは限りません)  それと、125以上の1番目だけでなく、2番目、3番目を拾い出す計算式はないでしょうか? 宜しくお願いします。関数に関しては初心者でいろいろ検索しましたが、ぴったり来ません。

  • excel関数 matchの使い方について

    早速質問します。 行 A B C 1 2 2 2 4 3 5 4 3 5 8 6 2 C1セルにMATCH(B1,A1:A6,0)を式を入れるとA1セルに「2」という値があるので、C1には戻り値として「1」が返ると思うのですが、続けてC2セルに続きの検索を行いたい(A6セルに「2」というデータが入っているのでC2セルには「5(=6-1)」という結果を期待してます)のですが、うまくいく方法が思いつきません。 知恵をお貸しいただけないでしょうか? MATCH(B2,A1:A6,0)と第1セクションに手動で「B2」といわれと、目的の結果が得られますが、汎用性を持たせるため自動で結果が入れれるようにしたいのでお願いします。

専門家に質問してみよう