[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『型が一致しません』(さむぷろだくと)
いつもお世話になっています。 下記のようにコードを記述しているのですが・・・ 型が一致しませんとエラーになってしまいます。
Sheets("仮取り込み").Range("E" & j) = WorksheetFunction.SumProduct( _ (Sheets("仮取り込み").Range("G" & j) & "*" & Sheets("仮取り込み").Range("G" & j + 1 & ":G" & j + 20)) _ & "*" & (Sheets("仮取り込み").Range("M" & j) & "*" & Sheets("仮取り込み").Range("M" & j + 1 & ":M" & j + 20).Value) _ & "*" & 1)
ご教示いただけませんでしょうか。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
ちょっとゴチャゴチャしていて、よく分りません。
多分、根本的な間違いをしているんだろうと思います。 ※シート上で書くのとは訳が違いますよ。
取りあえず、シート上の数式だと、どんな数式になるのか教えてください。 ※jが「2」のケースで作ってみてください。
(半平太) 2016/09/29(木) 15:24
半平太さんコメありがとうございます!
シート上では下記のようになります。
E2=SUMPRODUCT((G2=G3:G22)*(M2=M3:M22)*1)
(さむぷろだくと) 2016/09/29(木) 15:47
ん〜、実現したいのは、こういう事でしょうか? Sheets("仮取り込み").Range("E" & j) = _ Evaluate("SumProduct((G" & j & "=G" & j + 1 & ":G" & j + 20 & ")*(M" & j & "=M" & j + 1 & ":M" & j + 20 & ")*1)")
それとも、式を自動作成したい、という事ならば、こう? Sheets("仮取り込み").Range("E" & j).Formula = _ "=SumProduct((G" & j & "=G" & j + 1 & ":G" & j + 20 & ")*(M" & j & "=M" & j + 1 & ":M" & j + 20 & ")*1)" (???) 2016/09/29(木) 16:19
>E2=SUMPRODUCT((G2=G3:G22)*(M2=M3:M22)*1) ↑ 「*1」は不要です。
こりゃ結構厄介ですね。
むしろCountifsを使った方が楽だと思いますが、 Sumproductと完全にイコールでもないので悩みますね。 (空白が絡むと違ってくる。現実にはそんなケースはないでしょうが・・)
以下一案です。
ary1 = Evaluate("(仮取り込み!G" & j & "=仮取り込み!G" & j + 1 & ":G" & j + 20 & ")*1") ary2 = Evaluate("(仮取り込み!M" & j & "=仮取り込み!M" & j + 1 & ":M" & j + 20 & ")*1") Sheets("仮取り込み").Range("E" & j) = WorksheetFunction.SumProduct(ary1, ary2)
(半平太) 2016/09/29(木) 16:54
???さんありがとうございます。
Evaluateのほうが私のやりたかった方法です!! 助かりました!!でも教えていただいたFormulaと結果が違っていて・・・ 結果としてはFormulaのほうが正しいのです。
その違いを教えていただけませんか?
(さむぷろだくと) 2016/09/29(木) 17:27
半平太さん何度もありがとうございます!!
半平太さんの式で私の期待どおりの結果ができました!! もう少し教えてください。 空白とは、たとえば・・・G列の値に" りんご"とか"りんご "といったようなものは =と認識しないという意味でしょうか? (さむぷろだくと) 2016/09/29(木) 17:30
> 空白とは、たとえば・・・G列の値に" りんご"とか"りんご "といったようなものは > =と認識しないという意味でしょうか?
Sheet2に下記2種の数式が入力してあるとすると・・・
(1) E2セル =SUMPRODUCT((仮取り込み!G2=仮取り込み!G3:G22)*(仮取り込み!M2=仮取り込み!M3:M22)) (2) F2セル =COUNTIFS(仮取り込み!G3:G22,仮取り込み!G2,仮取り込み!M3:M22,仮取り込み!M2)
普通、E2とF2は同じ結果になる・・が、
<仮取り込み1> <Sheet2 結果図> 行 _G_ _H_ _I_ _J_ _K_ _L_ _M_ 行 _E_ _F_ 2 a b 2 2 2 3 a b 4 c b 5 a b
G2とM2が空白だと、全然違った結果になる、と言うことです。
<仮取り込み2> <Sheet2 結果図> 行 _G_ _H_ _I_ _J_ _K_ _L_ _M_ 行 _E_ _F_ 2 2 17 0 3 a b 4 c b 5 a b
(半平太) 2016/09/29(木) 18:03
半平太様おはようございます。
ご丁寧な回答ありがとうございます。
なるほどなるほど・・・
これだと半平太さんの言われるようにcountifsのほうが私の望む結果になりますね!
countifsに置き換えて検証してみます!! (さむぷろだくと) 2016/09/30(金) 09:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.