Excelに関する質問です。

A1からA8まで数字が入っています。
例えばA1から
2,8,16,(空欄),4,64,8,16
と数字が並んでいます。
ここでA9にそれぞれの値の指数(底2)の平均を入力したいのですが
(つまり 1,3,4,2,6,3,4 の平均≒3.286)
関数またはマクロで対応したいのですが方法はありますでしょうか?
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/06/24 20:01:16
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:SALINGER No.1

回答回数3454ベストアンサー獲得回数969

ポイント10pt

関数で、LOG() を使えばいいので

=(LOG(A1,2)+LOG(A2,2)+LOG(A3,2)+LOG(A5,2)+LOG(A6,2)+LOG(A7,2)+LOG(A8,2))/7
id:zuguimo

ありがとうございます。

A1:A8を使う必要があることを書き忘れました。

2007/06/24 19:49:48
id:chuken_kenkou No.2

回答回数722ベストアンサー獲得回数54

ポイント10pt

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の間に、空欄のセルがあるというのが重要な意味がある

なら、その辺の事情について説明してください。

id:zuguimo

説明不足ですみません。

もっと複雑な質問でした。

2007/06/24 19:52:01
id:hiko3karasu No.3

回答回数1058ベストアンサー獲得回数25

ポイント10pt

B列を使ってもいいですか?

B1に

=IF(A1<=0,"",LOG(A1,2))

と書いてB8までコピー

A1に

=AVERAGE(B1:B8)

で解が出ます。

id:zuguimo

説明不足ですみません

2007/06/24 19:53:14
id:ohsamucosamu No.4

回答回数44ベストアンサー獲得回数0

ポイント10pt

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に記入すればできますよ

id:cicupo No.5

回答回数13ベストアンサー獲得回数3

ポイント65pt

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を押せば出来上がりです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません