- ベストアンサー
関数にあるセル範囲を自動的に変更する
- 関数を使用しているセル範囲を自動的に変更する方法について質問します。具体的には、Sheet1のB2セルの関数の範囲を$B$2:$B$4から$B$2:$B$6に変更することができるのかを知りたいです。
- Excelのバージョンは2003および2007です。
- Sheet1にある関数を使用してSheet2のデータを計算しています。具体的には、佐藤さんの訪問回数を数えています。Sheet2のデータは自動的にデータ2に変わります。関数のセル範囲を自動的に変更する方法について詳細を知っている方、教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
何をしたいのか説明があれば、最適な方法を提示できたと考えられます。 案1.根本的に (B2セルに) =COUNTIF(Sheet2!A:A,"佐藤") 案2.参照範囲を可変にする方法 (B3セルに) =SUMPRODUCT((Sheet2!$A$2:INDEX(Sheet2!$A:$A,MAX(2,COUNTA(Sheet2!$A:$A)))="佐藤") *(Sheet2!$B$2:INDEX(Sheet2!$B:$B,MAX(2,COUNTA(Sheet2!$A:$A)))<>"")) 案3.参照範囲を可変にする方法2 (B4セルに) =SUMPRODUCT((Sheet2!$A$2:INDEX(Sheet2!$A:$A,MAX(2,MATCH("ー",Sheet2!$A:$A)))="佐藤") *(Sheet2!$B$2:INDEX(Sheet2!$B:$B,MAX(2,MATCH("ー",Sheet2!$A:$A)))<>"")) さて、どのような結果がほしいのでしょうか?
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
これも前問と同じく質問の表現が判りにくい。 データの増減によって関数式(の範囲表現部分)を変えたくない、を、しっかり表現するjこと ーー 例データ Sheet1 AとB列のデータは 佐藤 1 近藤 2 田中 3 佐藤 1 佐藤 3 とする。 質問の関数を尊重すると Sheet1の何処かのセルに =SUMPRODUCT((OFFSET(Sheet2!A2,0,0,COUNTA(Sheet2!$A$2:$A$100),1)="佐藤")*(OFFSET(Sheet2!B2,0,0,COUNT(Sheet2!$B$2:$B$100),1)<>"")) 結果 3 A列は文字列、B列は数の列なので、COUNTA、COUNTを使い分けている。 上記データの行を増減すると(佐藤を)、即座に反応するだろう。 佐藤 1 近藤 2 田中 3 佐藤 1 佐藤 3 田中 1 佐藤 1 佐藤 1 結果 5 に変わる。 ーー しかしこんな式で、2007ではしない。 SUMPRODUCTはCOUNTIFSが使えるだろう。
お礼
いつも、ご回答ありがとうございます。 さらに、質問の仕方について、ご指導いただきありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
> ●【$B$2:$B$4】から【$B$2:$B$6】 > に変更する事はできないでしょうか?? 画像のような配置なら、範囲を変更しなくとも最初から$B$2:$B$6にしておけば両方に対応できると思いますが・・・。
お礼
ご回答ありがとうございます。 セル範囲が、可変する事に対して、自動で、変更する事ができないか、質問しておりました。
お礼
ご回答ありがとうございます。 セル範囲が、可変した時に、関数のセル範囲も自動的に、可変になるようにしたいと かんがえていました。 案2、案3で実現する事ができました。 ありがとうございます。