[[20070428205800]] 『特殊な合計』(はま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特殊な合計』(はま)

    A       B
 1  予定    2,000
 2   確定        2,500
 3  予定    
 4   確定        1,500
 5  予定    3,000
 6   確定        
 7  予定    1,000
 8   確定        
 9  予定    1,000
 10  確定        2,000

 まず、1・2行目について、予定欄と確定欄に数値があれば確定欄の値(2,500)を選ぶ。
 次に、3・4行目について、確定欄にだけ数値があれば確定欄の値(1,500)を選ぶ。
 次に、5・6行目について、予定欄にだけ数値があれば予定欄の値(3,000)を選ぶ。
 同じような考えで、B12に選んだ値の合計を表示したいと思います。
 上の場合だと
    2,500+1,500+3,000+1,000+2,000=10,000
 になります。
 C列などに作業用の列を作らないで、B12に上記の計算をするような関数は
 作れますでしょうか。
 よろしくお願いいたします。


(A1:B10)だけの範囲内に限りますけど、作業用の列を使わなくて、関数で行うとしたら、単純に次のとおりでできると思うんですけど、応用がきかなくてすみませんm(_ _)m。(はま)さんの参考になればいいのですが・・・

=SUM(IF(B1="",B2,IF(B2="",B1,B2)),IF(B3="",B4,IF(B4="",B3,B4)),IF(B5="",B6,IF(B6="",B5,B6)),IF(B7="",B8,IF(B8="",B7,B8)),IF(B9="",B10,IF(B10="",B9,B10)))

(よちお)


 ◆こんな方法もありますよ

 =SUM(B1:B10)-SUMPRODUCT((MOD(ROW(B1:B9),2)=1)*(B1:B9<>"")*(MOD(ROW(B2:B10),2)=0)*(B2:B10<>"")*(B1:B9))

 (Maron)

 =SUM(IF(B2:B10="",B1:B9,B2:B10)*MOD(ROW(A1:A9),2))として、Ctrl+Shift+Enter。
 などともできるようです。                              (6UP)

 =SUMPRODUCT(MOD(ROW(B1:B9),2)*(B2:B10+(B2:B10="")*(B1:B9))

 By しげちゃん

 みなさん、ありがとうございました。解決いたしました。
 いろいろな方法があるのですね。
 みなさんはどのようにして勉強されたのでしょうか。
 どんな参考本など見ても、基本的な関数の説明はありますが、応用となると
 やはり自分の能力が重要になるのでしょうか。
 なにか、いいアドバイス、参考となるものなどありましたら教えてください。
 (初級者から中級・上級者に生まれ変わりたいはまでした)

 > どんな参考本など見ても、基本的な関数の説明はありますが、応用となると
 > やはり自分の能力が重要になるのでしょうか。
 > なにか、いいアドバイス、参考となるものなどありましたら教えてください。

 「エクセルの学校」の質問に対する回答を自分で考えてみる。(もちろん、はじめは
 なかなか分からないが普通です。)
 で、実際になされた回答を見て勉強する

 他にも似たようなQ&Aの掲示板があるので、参考にされてはいかがでしょう。

http://hpcgi1.nifty.com/kenzo30/a_cbbs/cbbs.cgi

http://excelfactory.net/excelboard/exgeneral/excel.cgi

http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/exqalounge.cgi

http://www.moug.net/boards/index.htm

 など。


 難しい数式やVBAを考える前に、どのようにデータを配置したら
 処理がし易くなるかを考える方が近道だと思います。

 予定 確定 の列を別にすれば、作業列等を使用して簡単な数式
 で解決しますし、処理速度もアップするはずです。

 ご一考を...
 (seiya)


 どうもありがとうございました。
 参考にさせていただきます。
 (はま)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.