• 締切済み

9/16 11:23 の回答の件

nishi6さんへ 先日は早速のご回答ありがとうございます。 教えられた通りに9組でテストしてみました。計算式を入力しましたが、Sheet5のA3に「7」、B3に「き」が表示されただけで、4行目以降26行目迄、何も表示されません。計算式の入力でミスがあったのかもと思い、見直しましたが入力ミスはありませんでした。セルのコピーですが、セルA4を下にオートフィルでコピーしていけばいいのですよね? セルA4に入力した計算式の中の INDIRECT("Sheet10!C$"&(A3+2)&":$C$26"),の意味を教えてください。 私はリタイア組で、EXCELの初級者です。よろしくお願いします。 第1回目の回答のテストが終わったら、「修正」の方に入っていきます。

みんなの回答

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

まず式は、26を189に修正した方を使ってください。 入力するのではなく、回答の式を選択してコピーしてExcelの該当セルに貼り付けます。 再度書くと、私のExcelでは、 A3セルは、 =IFERROR(MATCH(A$1,Sheet10!$C$2:$C$189,0),"") A4セルは =IF(A3<25,IFERROR(A3+MATCH(A$1,INDIRECT("Sheet10!C$"&(A3+2)&":$C$189"),0),""),"") これをコピーして貼り付けてみてください。入力ミスを避けるためです。 A5セル以下はA4セルをコピーします。 INDIRECT("Sheet10!C$"&(A3+2)&":$C$26") の意味ですが、 INDIRECT関数は「参照するセルのアドレスを文字列で指定できる」関数です。 分かりづらい説明ですが、「参照」は関数の中で使います。したがって、関数の中で使ったINDIRECT関数の表す文字列が 関数の中で有効に機能します。関数の一部を「変数」にできるわけです。超強力な表記法で、ものすごく長い算式を短くできることがあります。 この質問の場合、9組の  (1)1番目をA3で求め、  (2)2番目をどうやって求めるか      (3番目以降はこれの繰り返し) の(2)が重要な命題です。 これは、(1)のA3で求めた方法と同じ考え方で、Sheet10の1番目を求めた次からの領域で1番目の9組を求めればいいことになります。 結局、前の検索結果を使って、検索領域をINDIRECT関数で計算したセル領域で定義しています。MATCH関数が見つかった最初を返すので、検索領域の最初をずらしているわけです。 算式中の「A3+2」は「A3+1」が最初に見つかった結果A3の値の次のセル、「1」はSheet10の表題行の分の調節です。 後は、見つからなかった時の対応や領域がなくなった場合などを考慮してIFERRORやIFで算式をガードしています。 よく見ると、A4の算式に、A3の算式が検索領域を変更しながら組み込まれているのが(多分)分かるはずです。 上手くいけばいいんですが。

関連するQ&A

  • 下記表の合計をINDIRECT関数(フィルハンドル)で表示するには(エクセル)

    下記のような表があり、答えは分かっているのですが 1~10組までの明細シートが分かれており、合計値は各シートのF16セルにあります。これの合計値をINDIRECT関数を使って統括用別シートのC列に表示させたく、C2セルに次の式を入力し8250の値が表示され、それを下のセルにフィル操作でドラッグコピーしたのですが全て同じ8250の値が表示されてしまいます。この式をそのセル番地にあわせて手入力すると正確な数値が出ます。何故こうなるのか?よく分かりません。  =INDIRECT(A2&"!F16")=8250 C3セルにフィルドラッグコピー=8250×⇒1950ならない。手入力で=INDIRECT(A3&"!F16")=1950となるが セルの参照の仕方、式の組立が悪いのでしょうか?インターネットのエクセルHPからサンプルファイルにはそれで答えがでると表記してありましたがその通りにならず、この関数理屈がよく分かりません。  効率よくコピー、貼付するにはどうすれば良いのでしょうか? A B C 1 組名 組合員数 合計 2 1組 5 8250 3 2組 1 1950 4 3組 4 7180 5 4組 6 7980 6 5組 10 17290 7 6組 9 19810 8 7組 11 19330 9 8組 8 15470 10 9組 4 7900 11 10組 9 14370 12 合計 67 119530

  • Excel 3行おきの合計を別のシートに連続して抽出

    以下のようにsheet1から3行おきにあるデータの合計を連続してsheet2のセルに計算式を入力する場合、Sheet2の各セルに一つ一つ計算式を入力するのではなく、A1に式を入力し、オートフィルでコピーできるような計算式を教えてください。 sheet2 A1 =SUM(Sheet1!A3:E3) A2 =SUM(Sheet1!A7:E7) A3 =SUM(Sheet1!A11:E11) A4 =SUM(Sheet1!A15:E15)          ・          ・          ・

  • オートフィル?規則性あるデータのコピー方法について

    以下の事を行いたいです。 データシートとグラフシートの2つがあります。 データシートには縦にデータ(数値)が入力してあります。 この中のデータ(等間隔に位置する値)をグラフシートに横に連続して並べたい。と考えます。 データシートの入力値をグラフシートに以下の様に表示させたいのです。 グラフシートのA1セル、B2セル、C1セル、D1セル、…に =データ!A9  =データ!A12  =データ!A15  =データ!A18  ・・・ のような規則で連続したコピーを行おうとして、 オートフィルでコピーを行ったのですが、残念ながら同じA列でコピーはされず、違う列で同じ行(9、12、15、18と連続した)のデータをコピーされてしまいます。 解決策があれば、宜しくお願いします。

  • エクセルの計算式でオートフィルを利用したいのですが・・・

    エクセルでsheet1のA1のセルにsheet2のA1~A5の足し算を入力し、 sheet1のA2のセルにsheet2のA6~A10の足し算を入力し…という風に、sheet2の5行ずつの足し算を順にsheet1へ合計で足していきたいのですが、膨大な数なのでオートフィルを使って一気にしたいのです。 3行目まで手打ちで入力して4行目からオートフィルでしようとしても、5行毎に足してくれません。 どのようにしたらいいでしょうか? どなたかお分かりになる方、すみませんが教えてください。 よろしくお願いします。

  • エクセル関数 条件適合時にゼロ値を表示したい。

    エクセルの計算結果のゼロ値の表示方法について教えてください。 セルは、A列・B列・C列に各7行があります。 A1 B1 C1 A2 B2 C2 A3 B3 C3  ・  ・  ・  ・  ・  ・ と言う感じです。 A列とB列は任意の数値を入力し、C列は(A列-B列)の計です。 例えば、C列の計算結果として、次のように数字を表示させたいのです。     A列  B列  C列 1行   8   6   2 2行             (A列に未入力なので、C列にはゼロ値も表示しません) 3行   5   5   0 (計算結果として、C3にはゼロ値を表示します) 【A列に数値が入るかどうかは、その度に変わります。次の時にはB1せるにも数値が入る可能性があります】 C1セルに計算式を入力し、下のセルにはフィルドラッグで入力できるような式はあるでしょうか? よろしくお願いします。

  • 関数のコピーについて

    セルA(生年月日)が3歳未満なら○を表示させるというIF関数を入れたセルがあります。セルBに生年月日を入力しても自動で計算できるようにAセルをオートフィルでコピーしたのですが、セルCには何も入力していないのに○がでてしまいます。まだ値を入れずに、関数だけを入れておきたい時はどうすればいいのでしょうか?

  • VBAの計算式で値を検出し別シートに貼り付ける

    例でA.xls sheet1に添付のデータがありB.xls sheet1のB列に検索値がありC列に記載のとおりの計算式が入力されています。関数入力はC2セルにの計算式を入力しそれを元にオートフィルでC3以降入力しているが膨大な計算式になりExcelを開いたりするのに処理に時間がかかりすぎる為セルに計算式をいれるのではなくVBAで計算式を入力しオートフィルみたいに連続した計算の値のみを入力したいのですがコードが解る方宜しくお願いします。

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

    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関数による検索では、数字や文字が何もない(空白)と言う様な意味ですか? いつまでもお手数をおかけして申し訳ありません。

  • excelのフィルハンドルについて

    A1セルのフィルハンドルを下方向にドラッグして A1「Sheet1!A4+Sheet1!A5」 A2「Sheet2!A4+Sheet2!A5」 A3「Sheet3!A4+Sheet3!A5」 としたいのですが、できませんか? もしできないのならフィルハンドルをドラッグして連続データを入力するような簡単な方法はありませんか? 計算自体は単純だからいちいち計算式を入力するのは面倒なので今は計算機で計算して数値を入力しているのですが、入力セルが多いので時間がかかってしまい・・・もっと効率のよい方法を教えてほしいのです。よろしくお願いします。

  • SUMのオートフィルについて

    別のシート「1組」にあるデータAとBを足した合計を表示したいのですが、 A1に、=SUM(1組!A4,1組!B4) A2に、=SUM(1組!A7,1組!B7) A3に、=SUM(1組!A10,1組!B10) という感じで、参照したい場所が3とびになっている為、オートフィルを使用すると上手くいきませんでした。 30件ほど続くので、手計算だと入力ミスがありそうです。 良い方法はありませんか?

専門家に質問してみよう