• 締切済み

提示された計算式の動作結果の報告と質問

nishi6さんへ 9/17の回答ありがとうございます。 修正した計算式を「コピー」し「貼り付け」を行い、動作を確認しました。 目的通りの結果が得られたことをご報告します。ありがとうございました。 「A4セル」に入力する計算式がポイントですね。計算式は、C列の検索開始行が見事に検索した次の行からになっています。感心しました。 「IFERROR]関数は今まで使ったことがありませんでした。また「INDIRECT」関数の有用性を少しだけ知ることが出来ました。 質問事項 1. A4セルに入力する計算式の中でIFERROR(A3+MATCH........で 確認します。 INDIRECT関数の内容は、Sheet10のC9:C189 MATCH関数の内容は、A$1=9をC9:C189の範囲で完全一致で該当するものを検索すると、Sheet10のC17が該当する。C17はA列のNo.16に該当する。 A3+の意味するところは何ですか?わかりません。 2. B3の入力式においてわからないことがあります。 2-1. INDEX(Sheet10!$B$2:$B$189,A3,1)<>"",はIF関数の論理式ですよね。 2-2. <>"",のあとのINDEX(Sheet10!$B$2:$B$189,A3,1)は論理式がTRUEの場合の処理ですよね。 2-3. 論理式の( )の後の<>"",の意味は何ですか?私は今までこの様な記述形式は目にしたことがありませんでした。INDEX関数による検索では、数字や文字が何もない(空白)と言う様な意味ですか? いつまでもお手数をおかけして申し訳ありません。

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>A3+の意味するところは何ですか?わかりません。 A3の式でSheet10のC2:C189で、9組の最初は7番目に見つかります。Match関数は検索領域で、上から最初に見つかったのが何番目か返します。 7番目が見つかったので、次は8番目から下に向かって見つければいいわけですが、「番目」をセルの座標に変える必要があります。 A4セルの(A3+2)は(A3+1+1)の意味で、A3+1はA3セルの「次の番目」から見つけることを、「+1」はSheet10で表題があるので、番目をセル座標に変えるためです。 また、A4セルのIFERROR(A3+MATCH のA3は、Match以下の算式で見つかった値は、狭くした検索領域での結果なのでA3に加算しています。 何もしないと、A3で7番目が見つかり、狭めた領域で9番目が見つかるわけです。A4ではこれをSheet10の全検索領域の番目にするために加算しています。 INDIRECT関数を使わないで、このような問題を別の関数で表したこともありますが、複雑で長くなり、誰もメンテナンスできないことが多かったです。30センチ、50センチの算式とか言って、作らないように指導していました。 >2.B3の入力式においてわからないことがあります。 >2-1.INDEX(Sheet10!$B$2:$B$189,A3,1)<>"",はIF関数の論理式ですよね。 そうです。質問に氏名に空白があると書いてあったので対応しました。何もしないと、氏名が未入力の場合、「0」が表示されるのでこれを回避しています。書式でも対応できますが、話が逸れると思いIFを使いました。 >2-2.<>"",のあとのINDEX(Sheet10!$B$2:$B$189,A3,1)は論理式がTRUEの場合の処理ですよね。 そうです。IF(A3番目の値が未入力でなければ,A3番目の値,未入力なら"") という意味です。 かなりダサい書き方ですが、こういう時の算式は、カッコよさよりも分かりやすく書くようにしています。 >2-3.論理式の( )の後の<>"",の意味は何ですか?私は今までこの様な記述形式は目にしたことがありませんでした。INDEX関数による検索では、数字や文字が何もない(空白)と言う様な意味ですか? そうです。「空白」という意味ですが、「空白」という意味ではなく。「スペース(空白)」が入力されていると捉えられる場合があるので、注意が必要です。 しかし算式で「""」をセットすると、そのセルは算式がセットされていて、見た目が何も入力されていないように見えるということになります。 質問にうまく答えられたでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelindex関数

    よろししくお願いします。sしheet1に 店名 月 品名 単価 A-1 1月 柿 100 A-1 1月 りんご 200 A-1 1月 みかん 300 A-1 2月 りんご 400 A-1 3月 バナナ 500 A-2 1月 みかん 600 A-2 2月 りんご 700 A-2 3月 バナナ 800 A-3 1月 りんご 900 A-3 2月 りんご 1000 A-3 3月 りんご 1100 というsheetがあり、sheet2には りんご 1月 2月 3 A-1 A-2 A-3 というsheetがあります。 そこで、単を引っ張ってきたいのですが、色々と勉強して index関数とmatch関数を使いたいのです が、サイト見る限り式が書いてありますが、関数を入力するボックスの入力が少しわかりにくいので、お手数ですが教えて頂く時、これから私が試したこと書きますので訂正お願いします。 (1)sheet2のB2にIFA2=¨¨、¨¨ (2)IF関数の偽の場合の所にIFError関数 の値にinx関数を入力して、調べたい場所のD行を絶対参照で (3)indexの行番号にmatch関数を入力して (4)検査値をsheet2の$A2&B$1&$A1$と入力して (5)検査範囲はsheet1の$A:$A&$B:$B&$C:$Cと入力して (6)照合の所は0と入力して (7)IFErrorのエラーの場合の値も0にしてやってオートフィルしたのですが全て0になります。 index関数とIF関数とIFError関数を開くと計算結果200と書いてあるのに、表示されません。今困ってるので詳しい方お願いします

  • 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の後の式がわかりません。 エクセル関数にはあまり詳しくないので、この式の意味をできれば詳しく教えていただけないでしょうか? (式の意味は人から聞いたものですが、違っていたらすいません)

  • エクセル 違うシートに計算式がある場合

    エクセル2000を使っています。 下記の計算をしたいのですが、方法を教えてください。 1.Sheet1 A1とB1に計算したい元の数値が記入されています。 例えば、A1=1 B1=2 2. Sheet2 のA1とB1に数値が入る事としてC1に計算結果が出るものとします。 3. Sheet1のC1にSheet2のC1の内容を表示したい。 4. Sheet1 A2、A3・・・・・、B2、B3・・・・・に入力した後で、C2、C3・・・・・・に Sheet2のC1で計算させた結果を自動的に入力したい。 別の言い方をすれば、Sheet2 のA1・B1が関数の入力するところにあたり Sheet2のC1が関数の出力(というか、計算結果)にあたります。 Sheet1からSheet2を関数のように使いたいのです。 Sheet1 ____ A_____B_______C 1___1_____2______3 2___2_____3______5 3___5_____8______13 4___9_____1______10 5___4_____5______ 9 Sheet2 ____A_____B_____C 1________________ =A1+B1 2_____________________ こんなイメージです。 Sheet2で計算の入力に対応するセルがA1・B1 計算結果が書いてあるのがC1 実際は、大きな表を参照しながら計算するので、色々計算した結果(途中計算は他のセルも使います)がC1に表されます。 以上、よろしくお願いします。

  • エクセルの計算式で質問です。

    エクセルの計算式で質問です。 表を作っているのですがA2からA10の範囲に☆や○等の記号を入力するとそれに見合った値(☆=10、○=5)がでるような感じに作ってあります。(Sheet1) そこで別シート(Sheet2)に A1=☆ B1=10 と入力した場合(A2、B2……と下方向に続いていきます) 上記の数字を合計した式をSheet2!B1*(COUNTIF(A3:A15,Sheet2!A1))+Sheet2!B2*(…………)+と入力するとSheet1のA20に合計値がでるようにしてあります。 これでもできたのですが、記号と数字がたくさんある場合、式が非常に長くなってしまい大変なことに…… 何か短くなるような式ってありますでしょうか…? VLOOKUPとかですと検索値が範囲になってしまいますし…

  • 別シートに勉強時間の集計結果を表示 仕組みが・・・

    お世話になっています 質問No.9097443 及び 質問No.9089695 でご指導いただきました。 勉強時間を集計したシートA列:科目 B列:開始日 C列:開始時刻 D列:終了日 E列:終了時刻 の記載があるsheet1には終了時刻から開始時刻を差し引いた作業時間を表示する列がない。 sheet1に差引の作業時間列を追加することなく、別のシートで各科目の勉強時間を集計する方法を教えてもらいました。 レクチャー頂いた内容は ************************************************************************************* Sheet3のA列とB列を作業列として使用して、Sheet2に科目ごとの勉強時間の合計を集計するものとします。 Sheet3のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1,ROW(),"")) Sheet3のB2セルに次の関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$B:$B,ROW())="",INDEX(Sheet1!$C:$C,ROW())="",INDEX(Sheet1!$D:$D,ROW())="",INDEX(Sheet1!$E:$E,ROW())=""),"",IF(ISERROR(1/(YEAR(INDEX(Sheet1!$B:$B,ROW()))>1904)/(INDEX(Sheet1!$C:$C,ROW())+0>=0)/(INDEX(Sheet1!$C:$C,ROW())+0<1)/(YEAR(INDEX(Sheet1!$D:$D,ROW()))>1904)/(INDEX(Sheet1!$E:$E,ROW())+0>=0)/(INDEX(Sheet1!$E:$E,ROW())+0<1)),"",IFERROR(TEXT(INDEX(Sheet1!$D:$D,ROW())+INDEX(Sheet1!$E:$E,ROW())-INDEX(Sheet1!$B:$B,ROW())-INDEX(Sheet1!$C:$C,ROW()),"[h]:m:s")+0,""))) Sheet2のA2セルに次の関数を入力して下さい。 =IF(ROWS(A$1:A2)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL(Sheet3!$A:$A,ROWS(A$1:A2)))) Sheet2のB2セルに次の関数を入力して下さい。 =IF($A2="","",TEXT(SUMIF(Sheet1!$A:$A,$A2,Sheet3!$B:$B),"[h]:m:s")+0) ************************************************************************************* 実践できたものの、仕組みが複雑でわかりません。 Sheet3のA2では、IF関数の中で、COUNTIF関数が使われていますが、なんのためなのかわかりません。 Sheet3のB2セルには関数の中に">1904"と数値の1904より大きい値を指定する関数が組み込まれたいますが、なんのためか理解できていません。 Sheet2のA2では、「Sheet2のA1:A2がSheet3のA列より大きい」という条件に適合しなかった場合、最小値を求める計算をしていますが、何のために行っているのかわかりません。 Sheet2のB2では、A2に適合しなかった場合、Sheet1のA列から何かを何かの条件に一致したものを合計して時間表示していますが、よくわかりません。 簡単でいいので、解説をお願いできませんでしょうか? すみません、理解力が乏しいもので申し訳ありませんが、よろしくお願い致します。

  • Excelの計算結果がおかしい

     A1セルには32.1という数値データが手入力されていて、B1セルには次の関数が入力されています。 =IFERROR(MAX(LEN(MOD(ABS($A1),1))-2,0),"")  通常であればB1セルには1が表示されている筈なのですが、何故か15が表示されてしまいます。  再計算を行っても、一旦保存してからExcelを閉じて再度Bookを開いても結果は変わりませんでした。  どなたか原因と解決方法をお教え願います。  尚、ExcelのバージョンはExcel2010です。

  • Excelの関数について教えてください。

    Excelの関数について教えてください。 シート1に顧客表があります。 そこから検索をかけてシート2に該当する顧客を表示させたいです。 検索項目が一つならばVLOOKUPなどを使えばいいのですが、 検索に必要な項目が3つあります。 例えば   A B C D… 1 1 1 1 企業A 2 1 1 3 企業B 3 1 2 1 企業C のような感じで1000くらいのデータが並んでいます。 シート2にて   A B C D 1 1 1 1 企業A 2 それぞれのセルに1-1-1と入力するとD1に『企業A』と表示させ、 1-1-3と入力すれば『企業B』というようにA1~C3に入力する数値によりD1の表示を変えていきたいです。 そして該当がなければ『該当無し』と表示したいです。 この場合の関数は何を用いてどのような式を作ればいいのでしょうか? 関数に詳しい方、ご協力お願いいたします。

  • 同じフォルダー内の別ブックで計算結果を入力

    Aブックsheet1をActiveしており同じフォルダー内にあるBブックのsheet1の検索値"A2"のVLooKUPで出した計算結果13の値のみをAブックsheet1 セル"A2"に入力したいのですが。Excel関数は解るのですがVBA関数となると難しくどなたか解るかた宜しくお願いします。因みにBブックは閉じています。

  • Excelの関数について教えてください。

    Excelの関数について教えてください。 前回の質問と似ていますが、回答お願いいたします。 シート1に顧客表があります。 そこから検索をかけてシート2に該当する顧客を表示させたいです。 検索に必要な項目が3つあります。 例えば   A B C D… 1企業A1 1 1 企業A 2企業B1 1 3 企業B のような感じで1000くらいのデータが並んでいます。 シート2にて   A B C D 1 1 1 1 企業A 2 それぞれのセルに1-1-1と入力するとD1に『企業A』と表示させ、 1-1-3と入力すれば『企業B』というようにA1~C3に入力する数値によりD1の表示を変えていきたいです。 そして該当がなければ『該当無し』と表示したいです。 この場合の関数は何を用いてどのような式を作ればいいのでしょうか? 関数に詳しい方、ご協力お願いいたします。

  • エクセルで再計算のエラーが出る

    エクセルで、INDEX関数と循環参照を使って表を作っています。 <INDEX> Sheet1には、A列に名前(2000ケースくらい)、B列以降に毎日のある数字(100日分)が入力されています。 ただし、A列に名前はあるが、B列以降に数字が入力されていない場合も混じってあります。 Sheet2にはINDEX関数を使って、あるセルC1に「1」と入力すればSheet1のA1の毎日の数字がSheet2のA1からA100に参照されるように作ってあります。 C1に「2」と入力すればSheet1のA2の毎日の数字が参照されます。 <循環参照> 上記のSheet2にでは、明らかに少なすぎるデータを欠損データとするように循環参照をしています。 具体的には、とある1日のデータが、100日分の平均値の10分の1未満の場合には欠損とするようにしてあります。 Sheet2のセルA1からA100に100日分の数値がINDEXで参照されており、 セルB1に「=if(A1="","",if(A1=0,"",if(A1<A102,"",A1)))」 セルB2~B100までB1と同様の計算式 セルB102に「=B102/10」 セルB101に「=average(B1:B100)」 と、循環参照させてあります。 エクセルのオプションの「数式」の「ブックの計算」は自動、「反復計算を行う」にチェックし反復回数は100(100日分あるため)、変化の最大値は1(小数点以下の数値は必要ないので)にしてあります。 <計算エラー> 上記のINDEXと循環参照を利用して通常は問題はありませんが、 Sheet1に数値が入力されていないケースが出た後にエラーが出て来ます。 Sheet1のA列で、例えばA4のケースに100日分のデータが入力されていなかったとします。 Sheet2のC1に1~3の数値を入力した時は問題ありませんが、4を入力したらB列は全て「#NUM」と表示されます。 これは、循環参照をするにもできないからなので、理解できます。 その後は、C1に何を入力しても(さっきは問題なかった1~3を入力しても)、「#NUM!」が表示されたままになり、循環参照の再計算がうまくいきません。 主動でF9を押して再計算も「#NUM!」のままになります。 どのようにすれば、これを回避できるでしょうか? 最終的には、グラフ等を作成して、マクロを組んで一括で数百ケース程を印刷しようと思っています。 アドバイスよろしくお願いいたします。 ※ Office Home and Business 2010 Windows7 professional 32bit を使用しています。

専門家に質問してみよう