A1からA8まで数字が入っています。
例えばA1から
2,8,16,(空欄),4,64,8,16
と数字が並んでいます。
ここでA9にそれぞれの値の指数(底2)の平均を入力したいのですが
(つまり 1,3,4,2,6,3,4 の平均≒3.286)
関数またはマクロで対応したいのですが方法はありますでしょうか?
よろしくお願いします。
関数で、LOG() を使えばいいので
=(LOG(A1,2)+LOG(A2,2)+LOG(A3,2)+LOG(A5,2)+LOG(A6,2)+LOG(A7,2)+LOG(A8,2))/7
A1からA8まで数字が入っています。
例えばA1から
2,8,16,(空欄),4,64,8,16
と数字が並んでいます。
A1~A8まで数字が入っているといいながら、途中に空欄が
あるというのは、前提条件に矛盾があるのでは?
B1~B8を作業用に使っていいなら、
=log(B1,2)
といった式を、B1に入れ、B2~B8にコピーすれば指数を得られ
ます。
A9に
=average(B1:B3,B5:B8)
で希望の結果を得られます。
A1~A8の間に、空欄のセルがあるというのが重要な意味がある
なら、その辺の事情について説明してください。
説明不足ですみません。
もっと複雑な質問でした。
B列を使ってもいいですか?
B1に
=IF(A1<=0,"",LOG(A1,2))
と書いてB8までコピー
A1に
=AVERAGE(B1:B8)
で解が出ます。
説明不足ですみません
http://www.yahoo.co.jp/ ダミーです
=(LOG(A1,2)+LOG(A2,2)+LOG(A3,2)+LOG(A5,2)+LOG(A6,2)+LOG(A7,2)+LOG(A8,2))/7
この関数をA9に記入すればできますよ
Excel 2003では、以下のような数式で対応可能です(他のバージョンは未確認です)。
A9を選択した状態で「=AVERAGE(IF(A1:A8="","",LOG(A1:A8,2)))
」と入力し、最後にCtrl+Shift+Enterを押してください。
※以下、解説
最後の Ctrl+Shift+Enter は、数式を「配列数式」にする方法です。
入力がうまくいけばA9を選択した状態で数式バーに{=AVERAGE(IF(A1:A8="","",LOG(A1:A8,2)))}
と表示されるはずです。
ExcelのヘルプやGoogleで「配列数式」を調べていただくと詳しい使い方が見つかると思います。
※配列数式を使いたくない(使えない)場合
作業セルを使うと配列数式と同様の計算をすることが可能です。
例えば、B1に「=LOG(A1,2)
」という数式を入力しEnterを押し、B1を「コピー」してB2からB8の範囲に「貼り付け」してください。ただし、B4には「#NUM!
」というエラーが表示されるはずですので空欄にしておいてください。最後に、A9に「=AVERAGE(B1:B8)
」と入力してEnterを押せば出来上がりです。
ありがとうございます。
A1:A8を使う必要があることを書き忘れました。