EXCEL/期間内の金額集計



◇-?EXCEL/期間内の金額集計-さき-11/14-14:20(74)-No.306883
 ┗?!Re:EXCEL/期間内の金額集計...-白茶-11/14-15:43(73)-No.306892

▲このページのトップに戻る
306883EXCEL/期間内の金額集計さき URL2005/11/14-14:20

メーカー名:富士通
OS名:Windows2000
パソコン名:610Nu2
--
http://pasokoma.jp/bbsa/lg306042.html からの引き続きの質問
(似た現象に陥っており質問をする場合も含みます)


白茶様、ご回答ありがとうございます。

A列に空白がまぎれていますので
短い方ですよね。
ですが、どうやら上手くいきません。

=SUMPRODUCT((MID(A1:A30,5,2)="11")*B1:B30)は
C列に入れれば良いのでしょうか!?


▲このページのトップに戻る
306892Re:EXCEL/期間内の金額集計白茶 2005/11/14-15:43

記事番号306883へのコメント
さきさんは No.306883「EXCEL/期間内の金額集計」で書きました。

あらら。

>C列に入れれば良いのでしょうか!?
何処でも良いのですよ。

まずは、式の仕組を理解して、何処が引っ掛かっているのか
突き止めましょう。

式を簡単に解説してみます。
別々に考えると解ると思いますが、
「=MID(A1,5,2)」はA1の文字列から、5文字目、6文字目を抜き出します。
もし、A1が「20051101」なら、この関数の返り値は「11」という文字列です。

したがって「=MID(A1,5,2)="11"」という式の返り値は、論理値「TRUE」。
論理値を演算子「+-*/」を用いた式に組み込むと、
「TRUE」は「1」、「FALSE」は「0」になります。

したがって
「(MID(A1,5,2)="11")*B1」という式は、
「TRUE*B1」すなわち、「1*B1」という式になります。

SUMPRUDUCTは配列の要素同士の積の合計を返しますから、
「(MID(A1,5,2)="11")*B1」と同じ計算を1から30行目に対して一気に掛け、
その結果を合計しているのです。

上記を踏まえて、試しに、
C1に =MID(A1,5,2)
D1に =C1="11"
E1に =D1*B1
として30行目までコピーしてみて下さい。

何処がおかしくなっているでしょうか?

予想ではA列のデータ形式の都合で、
MID関数が欲しい返り値を返していないからだと思っています。
「20051101」が数値または文字列として入力されているかどうか。
とか・・・。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言