マンガでよめる痔のこと・薬のこと

エクセルで、『データの中から0以上の物のみを指定して、それらの標準偏差を求めるやり方』がわからず困っています。
例えば、

00022003000010002000

というふうにデータが並んでいましたら、0以外の『22312』を指定してそれらの標準偏差を出したいのですが、並び替える以外でどうやってやればよいかがわかりません。
どなたか御教授のほど、お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

例データ


A列   B列
11
20
32
20
53
ー0
1.5165750895
ー0
ー2

ー1.516575089
A7の式は =STDEV(A1:A5)
ーー
空きのセルB11に
=STDEV(IF(B1:B9<>0,B1:B9,""))
といれて、SHIFT+CTRL+ENTERの3つのキーを同時押しする。
(配列数式)
結果
1.516575089
とA列の標準偏差と一致するので、上記配列数式は、0の行を
無いものとして、扱ってくれていると結論付けた次第です。
    • good
    • 1
この回答へのお礼

丁寧な御回答、有難うございます。お陰でよくわかりました。
またの機会がありましたら宜しくお願いします。

お礼日時:2008/05/15 10:54

  A B C D E F G H I J K L M N O P Q R S T  U


1 0 0 0 2 2 0 0 3 0 0 0 0 1 0 0 0 2 0 0 0 0.707
2 0 1 0 2 0 3 0 4 0 5 0 5 0 4 0 3 0 2 0 1 1.491

U1: {=STDEV(IF(A1:T1,A1:T1,""))} ← 配列数式
    • good
    • 1
この回答へのお礼

迅速な回答、ありがとうございました。
またの機会がありましたら宜しくお願いします。

お礼日時:2008/05/15 10:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルでの複数条件下での標準偏差の求め方

教えてください。エクセル2007を使用しています。僕はエクセル初心者ではありませんが、玄人でもない中級者くらいだと思います。早速ですが、例えばA列に男か女かの性別、B列に日本、アメリカなどの国籍、C列に東京、フロリダなどの州、県、D列に右利きか左効きか、E列に年齢が書いてある表において、「男、日本、埼玉、右利き」の人の「年齢」の「標準偏差(STDEV)」を求めようとしたとき、計算する方法がわかりません。ソートをかけて求める方法も考えましたが、内容や位置がコロコロ変わるため、向いていないと思ってます。平均値ならAVERAGEIFSで出せますし、合計ならSUMIFSがあると思います。1つの条件(たとえば、「日本」の「年齢」の標準偏差)ならば、なんとかできますが、このような場合の関数はあるのでしょうか?もしなければ、どのように算出するのか教えて頂ければありがたいです。よろしくお願いいたします。

Aベストアンサー

方法1:
=STDEV(IF((A1:A100="男")*(B1:B100="日本")*(C1:C100="東京")*(D1:D100="左"),E1:E100))
と数式バーに記入して,コントロールキーとシフトキーを押しながらEnterで入力します


方法2:
STDEVの基本式
=SQRT((N*Σ(x^2)-(Σx)^2)/(N*(N-1)))
で計算します(関数のヘルプを参照の事)

NはCOUNTIFS関数,ΣxはSUMIFS関数で計算できますが,Σ(x^2)については
=SUMPRODUCT((A1:A100="男")*(B1:B100="日本")*(C1:C100="東京")*(D1:D100="左"),E1:E100,E1:E100)
といった具合に求める必要があります。

QExcel関数:「0」を除いた標準偏差の計算方法2

前に質問したのですが条件を書いていなかったので改めて質問します。回答してくれた方、申し訳ありませんでした。
例えば、下のようにセル「A1」が「1」、「A2」が「0」というようにデータがあったとします。これらのデータの中から「0」を除いた標準偏差(母集団、データ総数の)を求める計算方法があったら教えてください。
条件は、
1.一つのセルで計算する
2.「0」を変えない
3.データ範囲「A1:A5」を変えない
4.純粋に関数のみで計算する
です。
あまり、関数を知らないので解説もよろしくお願いします。

  A
1 1
2 0
3 2
4 5
5 4

回答よろしくお願いします。

Aベストアンサー

0だって立派なデータなんだけどなぁ。

stdev(A1:A5)は、その定義より
=sqrt(sumproduct((A1:A5-(sum(A1:A5)/count(A1:A5)))^2)/(count(A1:A5)-1))
と書くことが出来ます。helpでstdevを参照するとこの式を普通に
書いたのが載ってますから見てください。

後はこの式から0の寄与分を除外していくわけです。まず、count
(A1:A5)はcountif(A1:A5,"<>0")と「0でない数」を数えます。sum
(A1:A5)は0がいくつあっても変わらないので放置していいですね。
問題はこうして修正した平均値と各データの偏差ですが、0を除外
した配列を生成することは出来ないので、とりあえず平方和まで計
算してから平均の2乗を0の数だけ引いてやることにします。そうし
て出来上がった式は、

=sqrt((sumproduct((A1:A5-(sum(A1:A5)/countif(A1:A5,"<>0")))^2)-(sum(A1:A5)/countif(A1:A5,"<>0"))^2*countif(A1:A5,"=0"))/(countif(A1:A5,"<>0")-1))

0だって立派なデータなんだけどなぁ。

stdev(A1:A5)は、その定義より
=sqrt(sumproduct((A1:A5-(sum(A1:A5)/count(A1:A5)))^2)/(count(A1:A5)-1))
と書くことが出来ます。helpでstdevを参照するとこの式を普通に
書いたのが載ってますから見てください。

後はこの式から0の寄与分を除外していくわけです。まず、count
(A1:A5)はcountif(A1:A5,"<>0")と「0でない数」を数えます。sum
(A1:A5)は0がいくつあっても変わらないので放置していいですね。
問題はこうして修正した平均値と各データの偏差です...続きを読む

QEXCEL 複数の範囲から標準偏差を求めるには?

範囲が2つある場合の母標準標準偏差と標本標準偏差を
出し方を探しています。

対象の表について説明します。

・ヘッダ部
A1にデータ B1にフラグ C1にデータ D1にフラグ F1にフラグ

・データ部
A2からA11に1,2,3,4,5・・・10
B2からB11に0と1を交互に0,1,0,1…
C2からC11に11,12,13,14,15・・・20
D2からD11に0と1を交互に0,1,0,1…

・その他条件指定部
F2に1

以上が表になります。

A列:B列は、B列の値が1の場合は、A列の値を含める。
C列:D列は、D列の値が1の場合は、C列の値を含める。
ようは、フラグが1の場合はデータが有効と判断します。

A、C列の有効なデータについての標準偏差を求めたいのですが
うまくいきません。

A列だけの場合は、=DSTDEV(A:B,A1,F1:F2) と =DSTDEVP(A:B,A1,F1:F2)
でうまくいくのですが、C列も加えて計算する方法がわかりません。

何回か計算を繰り返しても良いので良い案があればアドバイスお願いします。

範囲が2つある場合の母標準標準偏差と標本標準偏差を
出し方を探しています。

対象の表について説明します。

・ヘッダ部
A1にデータ B1にフラグ C1にデータ D1にフラグ F1にフラグ

・データ部
A2からA11に1,2,3,4,5・・・10
B2からB11に0と1を交互に0,1,0,1…
C2からC11に11,12,13,14,15・・・20
D2からD11に0と1を交互に0,1,0,1…

・その他条件指定部
F2に1

以上が表になります。

A列:B列は、B列の値が1の場合は、A列の値を含める。
C列:D列は、D列の値が1の場合は、C列の値を含める。
ようは、フラグ...続きを読む

Aベストアンサー

{=STDEV(IF(B2:B11=F2,A2:A11,""),IF(D2:D11=F2,C2:C11,""))}
{=STDEVP(IF(B2:B11=F2,A2:A11,""),IF(D2:D11=F2,C2:C11,""))}

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

QExcelで離れた位置のAVERAGEを求めたい

Excelで離れた位置のAVERAGEを求めたいのですが、
飛び飛びのに位置するセルをどのように選択したらよいのでしょうか?
例えば(C2.E2.G2)の合計。
初歩的な質問で申し訳ありませんがお願いします。

Aベストアンサー

average(c2:e2:g2)
というように":"を間に入れればできますよ。

Qexcel 標準偏差の求め方

よろしくお願い致します。
標準偏差を求める関数を作製したいのですが、
STDEVP関数を使えばいいのですが、
空白のセルもあるため、使えません。

COUNTAを使って、数値が入っているセルのみで
標準偏差を求められますでしょうか?

平均と、(X-Xi)^2は既に求めてあります。

よろしくお願い致します。

Aベストアンサー

#2です。返答より
=STDEVP(IF(ISNUMBER(C10:C38),I10:I38))
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)

ただ、平均の標準偏差って計算する意味があるのか、
勉強不足でわからない(^^;)STDEVのほうがいいのかも。

QMAXIFはどうすればいい?

AVERAGEIFはありますが、maxでほしいのです。どうやって作れますか?

詳細:
B列が「あ」のデータだけ抜き出し、A列のmax値を得たいのです。
A    B
1   あ
2   い
4   あ
8   え
15  い
この例ではmax値は4です。

Aベストアンサー

>MAXIFはどうすればいい?
MAX関数の括弧内(配列)を前処理しなければなりません。
前処理の数式=(B1:B5="あ")*A1:A5
従って、=MAX(B1:B5="あ")*A1:A5 → MAX({1;0;4;0;0}) → 4
Excelでは計算結果を配列で返すことを要する数式を入力時にCtrlとShiftを押しながらEnterキーを打鍵することになっています。
確定した状態を数式バーで見ると{=MAX(B1:B5="あ")*A1:A5}のように数式を大括弧で括られています。

SUMPRODUCT関数の引数としてMAX関数の返り値を設定するとEnterキーで確定しても目的通りの値が返ります。
=SUMPRODUCT(MAX((B1:B5="あ")*A1:A5))
どのような数式を使っても結果が目的に合えば良いのでお好きな方法で解決してください。

Qエクセルで最小値から0を除く方法

早速ですが、エクセル入力したデータから最大値と最小値を求めようとしています。
最大値は=MAX(A1:A100)で求められるのですが、最小値には0が入っていると=MIN(A1*A100)では0となってしまいます。
0以外で最小値を求めたいのですが、どのように設定すればよいでしょうか?
どなたかご教授いただけると助かります。

Aベストアンサー

配列関数を使用することになります。
=MIN(IF(A1:A100=0,"",A1:A100))
と入れて、 Ctrl+Shift+Enter で決定します。
式が{}でくくられますが、
中身のIF文の通り、A1~A100のセルで0の値は 空白、それ以外はそのまま
で一度計算してその中の最小値を出します。

QEXCELで0をカウントしないで平均を出したい

平均値を求めたいのですが、AVERAGE関数を使うと値が0の分もカウントされて平均値が出てしまいます。
これを0を除いたものだけの平均値にしたいのです。
ちなみにこの平均値をもとめたいものは他のファイルからリンクを貼ってデータを持ってきています。

リンクを貼ってデータを持ってきていないものは、IF文を使って0だったら空白にするという風にしたら出来たのですが。。

ちなみに、今現在一個一個AVERAGE関数で0以外の部分を選択して出しています。これだと毎回直さないといけないので辛いです。どなたか教えてください!!

EXCELのバージョンは2000です。

Aベストアンサー

SUMIF() と COUNTIF() を使います。平均を求める範囲が A1:A10 だとしたら、

=SUMIF(A1:A10,"<>0",A1:A10)/COUNTIF(A1:A10,"<>0")

という感じで、0を除いた平均が計算できます。

QExcel、sumifはありますが、minif、maxifはどうしたら?

sumif、countif関数はありますが、minif、maxif関数的なものはどうしたら実現できるのか分かりません。VBAならできますが、関数で実現する方法がありましたら教えてください。

Aベストアンサー

MIN/MAX関数とIF関数で配列数式にするぐらいでしょうか。
例えば、A1:A10に「○」文字列のあるB1:B10のMIN値
 =MIN(IF(A1:A10="○",B1:B10))として入力完了時に、shift+ctrl+enterキーを同時押下して下さい。


人気Q&Aランキング