|
▼ponpon さん:
回答ありがとうございます。
私の挙げた例が良くなかったようです。
実際は、A1、C1、E1・・・という風に一つ飛ばしのセルの値を合計したいので、SUM関数は使ってません。FOR文で一つ飛ばしに値を取得して、変数に蓄積させています。
具体的に書くと、こうです。
(例)
Sub test()
Dim i As Integer 'loop counter
Dim sum As Integer 'sum
For i = 1 to 5
sum = sum + Sheets("XXX").Cells( 1, ( i - 1 ) * 2 + 1 ).Value
Next
End sub
XXXシートのA1、C1、E1、G1、I1にはIF関数が書かれており、例えばB1が100以上ならA1に2を出力し、B1が100未満ならA1に1を出力します。また、B1が空白の場合は、A1を空白のままになるようにIF関数を書きます。
(例.A1のセル)
=IF(B1="","",IF(B1>=100,2,1))
同様にC1はD1に、E1はF1に、G1はH1に、I1はJ1に対応します。
(例.C1のセル)
=IF(D1="","",IF(D1>=100,2,1))
(例.E1のセル)
=IF(F1="","",IF(F1>=100,2,1))
(例.G1のセル)
=IF(H1="","",IF(H1>=100,2,1))
(例.I1のセル)
=IF(J1="","",IF(J1>=100,2,1))
すると、100以上や100未満で2とか1とか出力される場合は良いのですが、空白になった場合に、合計する処理にてエラーになります。
要求仕様的にフォーマットを変えることができないのですが、SUM関数を使える方法が浮かんだので、それで試してみます。
|
|