|
▼かじったばかり さん:
こんにちは。
>ありがとうございます。
>思ったとおりの結果になりました。
>今まで悩んでいたのがすっきりはれました。
>>funcstr
>の式の内容なんですがどのようになっているのでしょうか?
>よければご教授ください。
では、
>>> A B C
>>>1 1 ON OFF
>>>2 3 ON OFF
>>>3 6 ON OFF
>>>4 7 ON ON
>>>5 9 ON ON
>>>6 11 OFF ON
>>>7 18 OFF ON
>>>8 20 OFF ON
>>>9 25 OFF ON
>>>10 30 OFF ON
>>>11 33 ON OFF
>>>12 35 ON OFF
この例題で考えます。コードを実行すれば、上記の例題では、
Funcstrは、
「SUM(IF(($B$2:$B$12="on")*($C$2:$C$12="off")*($B$1:$B$11="on")*($C$1:$C$11="off"),$A$2:$A$12-$A$1:$A$11,0))」
となります。これは、配列数式になっています。
仮にセルI1に
「=SUM(IF(($B$2:$B$12="on")*($C$2:$C$12="off")*($B$1:$B$11="on")*($C$1:$C$11="off"),$A$2:$A$12-$A$1:$A$11,0))」
と指定し確定をEnterキーではなく、
Ctrl+Shift+Enterキーで行ってみてください。
セルI1にはコード実行時と同様の「7」と表示されます。
コードは、これと同じ事を行っています。
別の方法で分析してみましょう。
上記の例題に対して、
・セルD2〜D12を選択してください。
・選択した状態で数式バーに
「=IF(($B$2:$B$12="on")*($C$2:$C$12="off")*($B$1:$B$11="on")*($C$1:$C$11="off"),$A$2:$A$12-$A$1:$A$11,0)」
と指定し、確定をEnterキーではなく、
Ctrl+Shift+Enterキーで行ってみてください。
D
1
2 2
3 3
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 2
と表示されていれば正しく指定できたことになります。
(こうならなかったら、どこか指定方法が違っていると思ってください)
このD2からD12を合計した結果が7です。
これを一回で行ってしまうのがFuncstrに入る配列数式です。
配列は、うまく利用すると便利です。
「配列数式」で検索すればいくつも引っかかってくると思いますから、
調べてみてください。
|
|