質問: indirect関数のことで教えてください sheet1に表を作ろうとしています。同じbookのなかに「売上実績0610」・「売上実績0611」・・・と複数のシートがあります(どんどん増えます)。 sheet1のb列に、=if(countif(売上実績0610!$b$6:$c$1608,b3)=0,0,b3)という式を設定し縦の列をつくり、c列・d列とつくっていきます。 この式の【売上実績0610!$b6$:$c$1608】の部分にindirect関数を使いたいのですが範囲指定がどうしてもうまくいきません。 どなたかご教授お願いします。(excel2003です)
回答: 範囲指定にわざわざindirect関数を用いる理由は「参照範囲を動的に変更したい」からだと推察します。 どの部分を変更したいのですか? また参照するべき範囲やシート名はどこかのセルに書き込んでありますか。 b1に 1608 を入力しておいて =if(countif(indirect("売上実績0610!$b$6:$c$"&b1),b3)=0,0,b3) とか、b1に 売上実績0610 を入力しておいて =if(countif(indirect(b1&"!$b$6:$c$1608"),b3)=0,0,b3) になるでしょう。 余計なことかもしれませんが元の式はなんだか変ですね 売上実績0610!$b$6:$c$1608の範囲でb3と一致する数字があればb3を表示し、なければ0を表示するのですね。「合致する数字があれば、その個数(countif関数の結果)を表示する」なら何となくしっくりきますが...