- ベストアンサー
Excelでの配列の書き方などについての質問です
Excelで、以下のようなセルにて計算を行いたいです。 ┏━┳━━┯━┓ ┃ ┃ A │.B.┃ ┣━╋━━┿━┫ ┃. 1┃. 100│. 1┃ ┠─╂──┼─┨ ┃. 2┃. 200│ ┃ ┠─╂──┤. 2┃ ┃. 3┃. 300│ ┃ ┠─╂──┼─┨ ┃. 4┃. 400│. 3┃ ┗━┻━━┷━┛ B2とB3の結合を行い、表が上記の様になっている場合、 =A1*B1 + A2*B2 + A3*B2 + A4*B4 といった計算をうまく行う方法はありますか? SUMPRODUCT関数を使用し挑戦してみましたが、 {B1;B2;B2;B4}と書いてみたところエラーを吐かれてしまいました。 配列の要素にセル番号を持ってくることはできないのでしょうか? 改善方法がありましたらお教えください。 また、上記の計算が行える他の記述方法等あれば教えていただけると助かります。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず簡易版の対処療法で。 D1セルを空っぽにしておきます D2セルに =D1 を入れます D1:D2を選んでコピーします B2(および結合されたB3)を選んで型式を選んで貼り付けを開始し,数式にマーク,「空白セルを無視する」にチェックを入れて,OKします。 作業を終えたらD2は消して構いません。 以上により,ご質問の計算は =SUMPRODUCT(A1:A4,B1:B4) で通ります。 ただし副作用として =SUM(B1:B4) は見た目とは違う結果になるので注意してください。 それから >配列の要素にセル番号を持ってくることはできないのでしょうか? 出来ません。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
C1セルに次の式を入力し下方にオートフィルドラッグします。 =IF(A1="","",IF(ROW(A1)=1,IF(B1<>"",A1*B1,A1*OFFSET(B1,-1,0)),IF(B1<>"",A1*B1+OFFSET(C1,-1,0),A1*OFFSET(B1,-1,0)+OFFSET(C1,-1,0)))) これで最終行には答えが表示されますね。答えをD1セルに表示されるのでしたらD1セルに=MAX(C:C)と入力します。
お礼
ご返答ありがとうございます! OFFSET関数というものもあるんですね。 扱えるようになると便利そうなので勉強してみます。
お礼
ご返答ありがとうございます! 思い通りにできました!