ここから本文です

Excelの循環参照について質問です。 9月から1年分の月名でシートを作成し、 ...

uta********さん

2019/8/1710:20:30

Excelの循環参照について質問です。

9月から1年分の月名でシートを作成し、
前月のシートのとあるセルを参照する式を各月のシートに入力したところ
循環参照のエラーが発生しました。

どこが問題なのかわからず困っております。

式の内容は、
自シートが9月であった場合、●の数を数えて表示する。
9月以外の場合は
その月($B$3)の前月シートのI列にある
「累計」セルの行番号と、G列(7列目)を列番号としたアドレスを返して参照する。

です。

=IFS(
MONTH($B$3)=9,
COUNTIF($H:$H,"●"),
MONTH($B$3)<>9,
INDIRECT(MONTH($B$3-1)&"月"&"!"&
ADDRESS(MATCH("累 計",
INDIRECT(MONTH($B$3-1)&"月"&"!"&"I:I"),0),7)),
TRUE,""
)

9月のシートでこの式を入力するとエラーは表示されず、
10月、11月・・・とコピペしていくと最後の8月でエラーが表示されます。
そして全てのシートでエラーのマークが出ます。

循環参照とならぬような式の修正方法をご教示いただけますと幸いです。
よろしくお願いいたします。

補足=IFS(
MONTH($B$3)=9,
COUNTIF($H:$H,"●"),
TURE,
INDIRECT(MONTH($B$3-1)&"月"&"!"&
ADDRESS(MATCH("累 計",
INDIRECT(MONTH($B$3-1)&
"月"&"!"&"I:I"),0),7))
)
と修正したところ、循環参照のエラーが表示されました。

=IF(
MONTH($B$3)=9,
COUNTIF($H:$H,"●"),
INDIRECT(MONTH($B$3-1)&"月"&"!"&
ADDRESS(MATCH("累 計",
INDIRECT(MONTH($B$3-1)&
"月"&"!"&"I:I"),0),7))
)
とすると循環参照のエラーは表示されなくなりました。

これはIFとIFSの関数の差なのでしょうか?
何が違うためにエラーが表示されるのか知りたいです。

INDIRECT,エラー,循環参照,I&amp;quot,シート,1 1 TRUE,A3セル

閲覧数:
32
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

2019/8/1712:59:18

どこか、未使用のシートの
A1セルに
=IF(1=1,1,IF(A1=1,1,""))

と入れてみます。1=1はtrueなので当然1が返ります。後ろのIF(A1=1,1,"")は循環参照ですが関係ないです。


次にA3セルに
=IFS(1=1,1,A3=1,1,TRUE,"")

と入れてみます。2番目の条件は循環参照ですね。0になってしまうと思います。1番目でtrueになっても循環参照を認識しているようです。
A3セルに
=IFS(1=1,1,A2=1,1,TRUE,"")
とするとめでたく1が返ります。


=IF(MONTH($B$3)=9,COUNTIF($H:$H,"●"),INDIRECT(MONTH($B$3)-1&"月"&"!"&ADDRESS(MATCH("累 計",INDIRECT(MONTH($B$3)-1&"月"&"!"&"I:I"),0),7)))

とするとどうなりますか?

MONTH($B$3-1)&"月"
ではなく
MONTH($B$3)-1&"月"

だと思うが?
B3セルには各月の1日の日付が入っている、ということならMONTH($B$3-1)&"月"でもOKですが。

  • tai********さん

    2019/8/1713:17:20

    確か、内部の仕様は非公表だったと思います。ヘルプを見ても循環参照に関しての注意も解説もないようです。これから出てくるかもしれませんが、


    推定ですが、
    IF関数はTrueの条件が出たところで処理を終了し抜けだします。
    IFS関数は処理を早くするために条件を1回全部配列のようなものに入れているのかもしれません。

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/8/17 14:52:31

EDATE関数との組み合わせを思いつきませんでした。

ご教示いただいた内容で、なぜ循環参照のエラーがでるのか
(推定ですが)納得できてよかったです。

また、式の修正もご指摘いただきましてありがとうございました。

また何か質問が出た際にはよろしくお願いいたします。

ベストアンサー以外の回答

1〜1件/1件中

よこまやさん

編集あり2019/8/1711:12:38

B3の内容は?

それとここに何故IFSを?

「式の内容は、」を読むと
IFでいけない理由が見当たらないし、3番目の条件に
たどり着ける気がしませんが・・・。

12枚が繋がり循環しているんだから1枚数式を変えるのが妥当。元々12枚全てで前月参照しても年度違いになる月はあるので、そこは数式を変えるとIFも省略できます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる