• ベストアンサー

エクセルで教えてください

エクセルで教えてください。 配列数式にしたいセルが多数あるのですが 1つ1つShift+Ctrl+Enterを押して決定しなければ いけないのでしょうか? マクロなどを使って配列数式を複数のセルで同時に設定することは できないのでしょうか? やり方を教えてください。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

keithinさんが回答されているようにコピーできました。 Range("F12").FormulaArray = "=SUM(IF(($C$2:$C$10=C12)*($D$2:$D$10=D12),$F$2:$F$10))" Range("F12").Copy Range("F13:F14")

gongongmail
質問者

お礼

ありがとうございます。 参考にさせていただきます。

その他の回答 (3)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

マクロの記録で一個記録してそれを応用すればいいと思われますが…。 たとえば Range("G1").FormulaArray = "=SUM( IF( A1:A10=""○"", B1:B10, ))" 一個だとこんな感じですね。 マクロの記録だとR1C1形式で記録されてわかりにくくなるので後でそこだけ直します。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

具体的にどういった配列数式を作ったのかによって, 1)1つのセルにCtrl+Shift+Enterしてから,他のセルにコピーして貼り付ける方法 2)セル範囲を先に選んでおいてから(1つのセルに=選択した範囲内のアクティブセル1つに)式を記入し,Ctrl+Shift+Enterしなければならない方法 のどちらかが使えます。 たとえばLINEST関数やTRANSPOSE関数を配列入力する場合(関すウィザードから関数のヘルプで具体的な数式の使い方例を勉強できます)などでは,後者の操作をしなければなりません。 こちらの相談室でもしばしば見かけるような配列数式なら,ちゃんと工夫して作成すれば(=コピーすることを考えて式を作っておけば)前者の操作で出来ます。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

同時には無理なようです。 ループ処理します。 F12に {=SUM(IF((C2:C10=C12)*(D2:D10=D12),F2:F10))} といったような配列式を入れるとして F12:F14に同じような配列式を入れる例です。 Dim c As Range For Each c In Range("F12:F14") c.FormulaArray = "=SUM(IF((C2:C10=C" & c.row & ")*(D2:D10=D" & c.row & "),F2:F10))" Next

関連するQ&A