人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: zuguimo
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:286 A1 A8 Excel マクロ
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● SALINGER
●10ポイント

関数で、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を使う必要があることを書き忘れました。


2 ● chuken_kenkou
●10ポイント

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

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

◎質問者からの返答

説明不足ですみません。

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


3 ● hiko3karasu
●10ポイント

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

B1に

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

と書いてB8までコピー

A1に

=AVERAGE(B1:B8)

で解が出ます。

◎質問者からの返答

説明不足ですみません


4 ● ohsamucosamu
●10ポイント

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


5 ● cicupo
●65ポイント

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ