- ベストアンサー
エクセル2000で配列数式を使ってデータの平均値を抽出する方法とフィルタをかけた場合の違い
- エクセル2000で配列数式を使ってデータの平均値を抽出する方法と、フィルタをかけた場合の答えが違う理由について説明します。
- B列に価格、C列に1~4の数値もしくはブランクが入っている場合、C列が1の値の価格の平均値を出すために配列数式を使用します。
- しかし、フィルタをかけてC列が1のもののみを表示させ、SUBTOTAL関数を使って平均値を出すと、配列数式で出した数値と微妙に異なる結果になります。この違いの理由についても解説します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 配列数式での平均値
こんにちは。 今、エクセルで配列数式を使って平均値を出す作業をしています。 列Aには男女別を示す1、2が入力されており、 列B以降にはいろいろなデータが入っています。 それらデータにおける男女別の平均値を出したいので 配列数式を使って求めるまでは良かったのですが、 どうやら、列B以降の空欄になっているセルも 0として計算されてしまっているようなのです。 (普通のaverageと同様に)空欄を数に入れないで計算させるには どのようにしたらよいのでしょうか? ちなみに今使っている配列数式は、 {=average(if(A1:A10=1,B:B10,""))} です。
- ベストアンサー
- その他(データベース)
- 配列数式で平均を出すと空欄が0で計算されてしまう
A B C D 1 1 2 1 {=AVERAGE(IF($A$1:$A$4=$C1,B$1:B$4))} 2 1 4 2 {=AVERAGE(IF($A$1:$A$4=$C2,B$1:B$4))} 3 2 6 4 2 8 上記のような数値、数式ですと、 B列すべてに数値が入力されているため、問題なく計算するのですが、 例えば、B2のセルを空欄にすると、空欄を0としてしまい、 D1の計算結果が1となってしまいます。 D1の数式を=AVERAGE(B1:B2)としますと、空欄は空欄として扱い、 計算結果は2となります。 配列数式を使った場合にも、空欄を空欄として扱い、 計算結果が2となるような方法はありませんでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ある条件を満たした最も近い数値を求める配列数式
ある条件を満たした最も近い数値を求める配列数式について質問します。 A列には,C列の数値と比較する元になる数値が並んでいます。 B列には,D列の数値と比較する元になる数値が並んでいます。 C列には,A列の数値と比較する対象となる数値が並んでいます。 D列には,B列の数値と比較する対象となる数値が並んでいます。 E列には,計算式が入ります。 すなわち,例えば,E20には, C$1:C20の範囲内の数値で, 右となりにあるD$1:D20の数値が0でなく,かつ,B$1:B20の数値以下である数値の中で, 最もA20の数値に近い数値を求めます。 A B C D E 1 100 10 89 0 0 2 101 8 90 10 0 3 102 11 92 11 92 4 99 7 77 0 0 5 87 11 68 12 92 6 105 14 100 7 100 7 102 9 78 8 100 8 88 15 102 0 90 9 98 14 99 10 99 10 150 13 78 9 100 11 103 8 79 0 100 12 87 9 68 8 78 13 77 10 70 10 78 14 89 12 71 5 90 15 65 14 102 3 68 16 88 13 105 0 90 17 123 15 98 8 102 18 145 17 99 10 102 19 85 8 100 0 90 20 84 9 87 5 78 一定の条件を満たした配列の合計を計算する関数として,SUMPRODUCT()という便利な関数がありますが, この関数に相当する関数がないので困っています。 MIN関数が配列数式に対応していて,かつ,MIN関数をうまく利用して,最も近い数値を求めることがでるき方法があれば,私の希望が解決できそうなのです。 以上,よろしくアドバイス願います。
- ベストアンサー
- オフィス系ソフト
- ある条件を満たした最も近い数値を求める配列数式
ある条件を満たした最も近い数値を求める配列数式について質問します。 A列には,C列の数値と比較する元になる数値が並んでいます。 B列には,D列の数値と比較する元になる数値が並んでいます。 C列には,A列の数値と比較する対象となる数値が並んでいます。 D列には,B列の数値と比較する対象となる数値が並んでいます。 E列には,計算式が入ります。 すなわち,例えば,E20には, C$1:C20の範囲内の数値で, 右となりにあるD$1:D20の数値が0でなく,かつ,B$1:B20の数値以下である数値の中で, 最もA20の数値に近い数値を求めます。もし,この条件に合う最も近い数値が複数あった場合には,最も小さい数値を求めます。 行番号 A B C D E 1 100 10 89 0 0 2 101 8 90 10 0 3 102 11 92 11 92 4 99 7 77 0 0 5 87 11 68 12 92 6 105 14 100 7 100 7 102 9 78 8 100 8 88 15 102 0 90 9 98 14 99 10 99 10 150 13 78 9 100 11 103 8 79 0 100 12 87 9 68 8 78 13 77 10 70 10 78 14 89 12 71 5 90 15 65 14 102 3 68 16 88 13 105 0 90 17 123 15 98 8 102 18 145 17 99 10 102 19 85 8 100 0 90 20 84 9 87 5 78 一定の条件を満たした配列の合計を計算する関数として,SUMPRODUCT()という便利な関数がありますが, この関数に相当する関数がないので困っています。 MIN関数が配列数式に対応していて,かつ,MIN関数をうまく利用して,最も近い数値を求めることがでるき方法があれば,私の希望が解決できそうなのです。 以上,よろしくアドバイス願います。 なお,エクセルのバージョンは,2010です。 本日,同じ表題の質問をしましたが,その際の質問の本文に掲載した数列が崩れていましたので,再度投稿します。 質問番号:6449070
- 締切済み
- オフィス系ソフト
- 配列数式がわかりません。
{=SUM(IF(E4:E18="福岡",G4:G18,0))} という式で正しい答えは出せたのですが、SUMのところをaverageに変更し平均を出そうとしても違う答えが返ってきます。 maxに変更したときは正しい答えが返ってきました。使えるものと使えないものがあるのでしょうか??? 配列数式がいまいちわかりません。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel 配列数式
Excelにて日付の2列x数行からなる表があります。 A列 B列 1 2008/2/1 0:00 2008/2/2 12:00 2 2008/3/1 0:00 2008/3/3 00:00 .. 集計セル: A列とB列を比較して、24時間以内の誤差である行数をカウントした結果を 集計セルに入力したいのですがどのようにしたら良いでしょうか? B列からA列を引いて-1以上1以下の場合を真として、その結果をカウントして 集計セルに叩き込めばよいと思いますが、思うようにできません。。 配列数式を使えば出来そうな気がしますが思ったような結果が得られ ません。 よろしくお願いします。
- ベストアンサー
- SE・インフラ・Webエンジニア
- エクセルにて平均値を表示したいけど?
エクセルにて平均値を表示したいけど? その方法が分かりませんので宜しくお願いします。 月別売上金の平均値を表示させたいのですが、 A列から1月B列2月順次L列12月としてM列に其の月までの平均値を表示させたいのですが 該当月までの平均値をIF関数にてできますでしょうか? 現在はAVERAGEの数式を該当月の列に置き換えて利用していますが 各月ごとに数値を入力すれば即該当月までの平均値が表示できればと思います。 尚 現在は年間分入力用書式を作成されて月末に数値を入力、数式を変える、作業をしています。 OSはオフィス2007を使用してます。 宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 《エクセル》 平均値の求め方
いつもお世話になります。 列Aに分類、列Bに数値がある場合に、「列Aの重複する分類の平均値を求める。ただし、列Bの値がゼロや空白だった場合、それを計算から除外する」という配列数式を組みたいのですが、うまくいきません。 お手数ですが、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 配列数式? 中央値 平均値
いつもお世話になっております。 早速ですが以前質問させていただいた内容からも発展というか 修正というかです。 http://oshiete1.goo.ne.jp/qa4561210.html 当初、配列数式にて =IF(COUNTIF($A$2:$A$33930,A2)=1,b2,AVERAGE(IF($A$2:$A$33930=a2,$B$2:$B$33930)))} を使用しておりましたが、 = SUMIF($A$2:$A$33930,A2,$B$2:$B$33930)/COUNTIF($A$2:$A$33930,A2) でも、同一の回答が得られまた処理も大変早く行われるため 非常に助かっておりました。 しかし、最近になって元データ側に不具合あり 平均値ではターゲットとする値から離れていることが発覚しました。 そのため、平均値から中央値 最頻値 のどちらかと思っているのですが 同一データが2つ無い場合もあるため最頻値ではエラーになると思い 中央値で求めたいと思っています。 データ量が6000行を超える場合もあり 配列数式を使って計算するべきなのか、他に良い方法があるのか教えて頂きたく よろしくお願いします。 エクセル2003です
- ベストアンサー
- その他MS Office製品
- (1/2)^x ・(1/2)^(3-x) の意味について説明します。これは、確率の計算式であり、xが0~3の値をとる限り、どれも一定で1/8になります。
- 具体的に、x=0の場合は1通りの組み合わせがあり、x=1の場合は3通りの組み合わせがあります。全ての組み合わせを合計すると8通りになり、各x通りを8で割ると、1/8になります。
- したがって、(1/2)^x ・(1/2)^(3-x) は、成功の確率と失敗の確率を表しており、掛け合わせることで確率の計算が行われます。具体的な計算方法は、指数の法則を用いて計算されます。
お礼
こちらの回答が大きなヒントになり、自己解決できました。 C列が1でB列がブランクの場合、配列数式ですとアプリケーションがブランクを0としてしまっているのが原因のようです。 (平均を出す時の、分母の数字が大きくなってしまう) 平均値を出すので、「データなし」と「0」では大きく意味合いが違ってしまうので、また新たな問題が発生しましたが、謎が解決しお陰様ですっきりしました。 どうもありがとうございました。