| 
    
     |  | ▼かじったばかり さん: こんにちは。
 
 >ありがとうございます。
 >思ったとおりの結果になりました。
 >今まで悩んでいたのがすっきりはれました。
 >>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に入る配列数式です。
 
 
 配列は、うまく利用すると便利です。
 
 「配列数式」で検索すればいくつも引っかかってくると思いますから、
 調べてみてください。
 
 
 |  |