dポイントプレゼントキャンペーン実施中!

こんばんは、エクセルについて質問があります。
  1月 2月 3月 ・・・
A1 10 40 70 ・・・
A2 10 40 70 ・・・
B1 20 50 80 ・・・
B2 20 50 80 ・・・
C1 30 60 90 ・・・
C2 30 60 90 ・・・

というデータの入ったシートから、別のシートに

1月分合計(※1)
A 20
B 40
C 60

という表を※1のセルの値(1月分であれば"1")を判定して1枚のシートにしたい(※1のセルの値を変えると各月分の表になる)のですが、SUM関数とIF関数を組み合わせて作成したところエラーとなってしまいます。調べてみたところIF関数のネストは8階層までということで、12ヶ月分の判定は難しいようです。どなたか回避方法をご存知の方がいらっしゃいましたら、ご教授願えれば幸いです。よろしくお願いいたします。

A 回答 (3件)

んと、関数をバラすと解りやすいです。



CHAR は数字から文字を返します。A ならば 65 、B ならば 66 です。
セルA1に 1 を入れた時に、B が出れば良い訳です。
=CHAR(A1+65) とセルに入力し、A1に 1 を入れれば B と出ます。

これを元の式になるように&で繋いで文字列を作ります。

="Sheet1!"&CHAR(A1+65)&2&":"&CHAR(A1+65)&3
とセルに入力すると Sheet1!B2:B3 と出るハズです。

このままではただの文字列なのですが、INDIRECT関数を使うとセル参照として使えるようになります。

それをSUMに渡してあげれば合計が計算されます。
    • good
    • 2
この回答へのお礼

ご返答ありがとうございます!ナルホドです。これで行けそうです。本当にありがとうございました!

お礼日時:2005/10/26 00:24

答えが合うかは基の表次第ですけど、、、


Sheet2のB2に

=SUM(INDIRECT("Sheet1!"&CHAR(A1+65)&2&":"&CHAR(A1+65)&3))

と入れて、Sheet2のA1 に 1~12 を入れると希望になります?

この回答への補足

ありがとうございます!大丈夫でした!
大変厚かましいですが、数式の説明をして頂けると幸いです。よろしくお願い致します。

補足日時:2005/10/25 23:42
    • good
    • 0

やろうと思えばIFのネスト制限は12程度なら回避可能です。


最初のIFで、7未満か、7以上かを分けてしまうって感じ。

A 20 ← ちなみに、ここはどんな関数にしてあるのでしょう?

IFでの分岐は長くなるのでもっと良い方法のアドバイスが出るかも。
(私が出来るかはわかりませんが、、、)

この回答への補足

ご返答ありがとうございます。ご質問の箇所ですが、「=SUM(Sheet1!B3:B4)」(実際はもっと多いのでSUM関数を使用しています)となっています。もう少し補足すると、A1のセルが"1"だったら、「=SUM(Sheet1!B3:B4)」を実行、"2"だったら、「=SUM(Sheet1!C3:C4)」を実行というふうにしたいのです。お判りになるようでしたら、ご返答よろしくお願い致します。

補足日時:2005/10/25 22:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています