エクセル関数の使い方|CORREL関数を使って相関関係を知る

このQ&Aのポイント
  • エクセルで2つの連続する数値の相関関係を知るためにはCORREL関数を使用します。しかし、関数を利用する際に95列目以降にエラー表示が出る場合、関数が使えなくなってしまいます。さらに、データの切り替えもあるため範囲を狭めたくありません。このような場合、エラー表示を消さずにCORREL関数を使用する方法を探しています。
  • CORREL関数を使用してエクセルで2つの連続する数値の相関関係を知る方法について相談です。関数の使用時に95列目以降にエラー表示が出てしまい、関数が使えなくなる場合があります。また、エラー表示を消すと折れ線グラフが0の値を指し示してしまい、エラー表示を消したくありません。エラー表示を消さずにCORREL関数を使用する方法を教えてください。
  • エクセルでCORREL関数を使用して2つの連続する数値の相関関係を知りたいですが、関数を利用する際に95列目以降にエラー表示が出てしまいます。そのため、CORREL関数を使用する方法を教えてください。なお、エラー表示を消すと折れ線グラフが0の値を指し示してしまうため、エラー表示を消したくありません。
回答を見る
  • ベストアンサー

エクセルの関数の使い方

エクセルで2つの連続する数値の相関関係を知りたいためにCORREL関数を使いたいです。 しかし、CORREL(A1:A100,B1:B100)と範囲指定した時に、たまに参照している計算式の関係で95列目以降、エラー表示#N/Aが出てしまいます。エラー表示が出るとCORREL関数が使えません。 さらにデータの切り替えがあるので、CORREL(A1:A95,B1:B95)と範囲を狭めたくありません。 またA1:A100とB1:B100で折れ線グラフを作成しており、IFERROR等でエラー表示を消してしまうと、折れ線グラフが0の値を指し示してしまうのでエラー表示を消したくありません。 このようにエラー表示を消さず、CORREL関数を使うにはどのような方法が考えられますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (715/1480)
回答No.4

ワークエリアを設けて、グラフを出す領域と、計算する領域を別々にすればいいです。 具体的には。 C1: =IFERROR(A1,"") C1:D100 へコピペ =CORREL(C1:C100,D1:D100)

sirokuman
質問者

お礼

ご回答ありがとうございます。 折れ線グラフで参照する行とCORREL関数で参照する行を分けてしまうしかないんですね。 表示範囲に同じ値が出るのが気に入らないので、行を非表示にして隠すことにしました。 ありがとうございます。

その他の回答 (4)

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.5

No.3 です. CORRELを計算しようとしている A列に日付が入っていて,そこにエラーが発生しているのなら,当然ですが CORRELの結果もエラーになります.その場合は,エラーが発生している行を削除するしかありません. あるいは,日付との相関ではなく日との相関にし,A列には 1~31の数値を入力する. 2月や 4月のように 31日までない場合は,ダミーデータとしてその月の平均値を入力すれば,相関に影響しません.

sirokuman
質問者

お礼

厳密には日付に基づいたデータAとデータBの相関性を知りたかったのですが、おっしゃるように折れ線に使う#N/Aを使うものと、CORRELように#N/Aを表示させないダミーを使うことにしました。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

問題は CORREL関数ではなく,以下の部分にあるように参照している計算式がエラー値を出しているからではありませんか? CORREL(A1:A100,B1:B100)と範囲指定した時に、たまに参照している計算式の関係で95列目以降、エラー表示#N/Aが出てしまいます。エラー表示が出るとCORREL関数が使えません。

sirokuman
質問者

お礼

単純に言えば、日付の関係です。 時系列の数式で31日もあれば2月のように28日のときもあるため31日未満の月は、必然的に数値がないので#N/Aが発生してしまします。

  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.2

CORREL関数を呼び出して使う、 オリジナルな関数をVBAで作成し対応する という解はいかがでしょうか? つまり、オリジナルな関数が (A1:A100,B1:B100) を受け取り エラーセルを動的に見つけ (A1:A95,B1:B95)を組み立て これをCORREL関数に渡します。 言い換えれば、後記のコードを標準モジュールに配置し =CORREL(A1:A100,B1:B100) と書くのではなく =MyCORREL(A1:A100,B1:B100) と書きます。 Function MyCorrel(Rng1 As Range, Rng2 As Range) As Double  Dim Rng1x As Range  Dim Rng2x As Range  Dim SRow1 As Long  Dim SRow2 As Long  Dim ERow1 As Long  Dim ERow2 As Long  Dim ERow As Long  Dim SCol1 As Long  Dim SCol2 As Long  Dim RowCnt As Long    SRow1 = Rng1.Row  SRow2 = Rng2.Row  SCol1 = Rng1.Column  SCol2 = Rng2.Column    RowCnt = SRow1  Do   If IsError(Cells(RowCnt, SCol1).Value) = True Then Exit Do   If Cells(RowCnt, SCol1).Value = "" Then Exit Do   RowCnt = RowCnt + 1  Loop  ERow1 = RowCnt - 1    RowCnt = SRow2  Do   If IsError(Cells(RowCnt, SCol2).Value) = True Then Exit Do   If Cells(RowCnt, SCol2).Value = "" Then Exit Do   RowCnt = RowCnt + 1  Loop  ERow2 = RowCnt - 1  ERow = Application.Min(ERow1, ERow2)    Set Rng1x = Range(Cells(SRow1, SCol1), Cells(ERow, SCol1))  Set Rng2x = Range(Cells(SRow2, SCol2), Cells(ERow, SCol2))    MyCorrel = Application.Correl(Rng1x, Rng2x) End Function

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

「たまに参照している計算式の関係で」とは具体的にだう云ふ事ですか?

sirokuman
質問者

お礼

単純に言えば、日付の関係です。 時系列の数式で31日もあれば2月のように28日のときもあるため31日未満の月は、必然的に数値がないので#N/Aが発生してしまします。

関連するQ&A

  • エクセルで散布図の上に相関関数の直線グラフを描きたい

    エクセルを用いて、例えば平均気温とエアコンの普及率の関係を散布図のドットで表し、それに相関関数の直線グラフを重ねて描きたいときはどうしたらよいのでしょうか? また、CORRELを使うと「0.568・・・」と数字がでてきますが、相関関数を「Y=aX+b」のように表したいのですが、a,bはどのように求めるのでしょう? お願いいたします。

  • Excelの相関関数「Correl」の-0.06865という値はどう見ればよいですか?

    エクセルでAとBの相関を出す関数「Correl」を使ったら値が-0.06865となりました。 AとBの相関は逆相関という解釈で良いのでしょうか? また、-0.06865と言うことは相当相関が無い、という認識でよいのでしょうか? 大体、この間数でいくらくらいになれば相関があると解釈できるのか尺度をご存じで有ればその点についても教えていただければ幸いです。

  • 相関係数の計算について質問です。EXCELにCORREL関数というのが

    相関係数の計算について質問です。EXCELにCORREL関数というのがあり、2つの変数の相関係数を計算できることを聞きました。一種の回帰分析のような計算をすることのようです。計算式(EXCELの関数)は=CORREL($A1...$A100,$B1...$B100)というような式のようです(この場合、同一変数のA列の1から100行までのデータと、相関をみる別の変数のB列の1から100行までのデータの相関を計算し、A列の変数とB列の変数の相関値(答えはひとつ)を出すということのようです。そこで質問なのですが、この100のデータの個々の相関係数(つまり、データひとつひとつをこの関数(CORREL)で計算した相関値をあとでその総和としての100のデータの相関値にする計算はできるのでしょうか。つまり、この100のデータの分類(同種の仲間として分析したい)をやる場合、その同種の分類の数だけこの関数計算をしなければならないので、先に個々のデータごとに必要な分析結果を出しておいて、後で同分類ごとに集計(総和)した結果を出したほうが早いと思ったので、この質問をしています。そもそも、この考え方のほうが結果が早く出るのかということも含めて、どなたかよくご存知の方、おしえてください。お願いします。

  • エクセル関数について

    エクセル関数について質問です。 セルA1、セルA3、セルA5のいずれかに入力された値をセルB1に返すことは関数で可能でしょうか? 可能であれば、IFERROR関数と組み合わせ、エラー値が返らないようしたいです。 エクセルバージョンは2007です。 ご教示ください。よろしくお願いします。

  • エクセルの相関関数について

    ある地域の町名別(A列)の売上高(B列)と、女性人口割合(C列)、高齢者人口割合(D列)などなど・・・の相関を見るため、エクセルの相関関数(CORREL)を使用しました。 A列 B列 C列 D列・・・ あ町 100  43% 25% い町 500  49% 23% う町  30  44% 19% え町  80  48% 21% そうしたところ結果として「0.01811」「0.03617」「0.05229」「-0.0585」のような数値が導かれました。 相関関数は「1」に近づくほど相関がある、とされていますが、 (1)これらの数値の差「0.01」「0.02」の差をどのレベルとして受け止めればよいのでしょうか?「わずか差」なのか「大きな差」なのか? (2)また、マイナスの結果はどのような意味があるのでしょうか?反比例の相関なのでしょうか? どちらかというと統計学の範疇かもしれませんが、すみませんが、よろしくお願いします。

  • Ex correl関数の代用式 ?

    os_xp  ex_03 Exの関数でcorrel 関数 式は  correl(配列1、配列2)で相関係数を求められますが。 配列1   配列2     A       B 1  1      100 2  2      150 3  3      200 4 correl(a1:a3,b1:b3) 答えは 1.000 です。 数値の配置は A1:A3 は1箇所にありますが B1:B3 に値する数値がバラバラにある 100は G20に 150は J20に 200は M20に ある、コレを置き換えずに計算が出来ないか----。 1箇所のセルのみの条件です   どうしても指定の場所に計算式をセットしたいのです。

  • エクセルのグラフについて教えて下さい。

    エクセルで、表から折れ線グラフを作ったのですが、そのグラフの参照するセルには、他のセルを参照して数式が入力されています。 確かに、その数式により計算された値は、もちろんグラフにプロットされますが、「=IFERROR(K13/L13,"")」で数式が満足されない時には、NULLを入れる式が入っています。 しかし、グラフを書くとNULLで表示されない値が「0」でプロットされ表示されてしまいます。 この、NULLがプロットつまり、グラフに表示されないようにするには、どうしたらよいのでしょうか? 教えてください。お願いします。

  • エクセルの関数について

    教えてください!! 検索データ範囲内から 1.(例)AまたはBまたはCが2つ以上ある場合だけにエラー表示(できれば色着きで該当列を表示)する関数。 2.該当範囲にAまたはBのみであればそのまま表示し、AとB両方あればABと表示する関数。 うまく説明できてないかもしれませんが・・・よろしくお願いします。

  • エクセル関数について

    A列とB列に氏名を入れてA列にあってB列にないものを取り出す為に=IFERROR(INDEX($A$2:$A$8,SMALL(IF(ISNA(MATCH($A$2:$A$8,$B$2:$B$8,0)),ROW($A$2:$A$8)-1),ROW()-1),1),"")の関数をⅮ列に入れ下にオオートフィルしたのですが、思うように表示されません。  関数が間違っているのか判りません。 何か良い方法はあれば教えてください。

  • エクセル関数INDIRECTについて

    エクセル関数 セルの参照についての質問です。 ひとつのBookの中に、AとBのシートがあります。 Aにデーターを入力し、Bに必要な部分だけセルの参照(INDIRECT)関数を使ってデーターを反映させていたのですが、Bのシートだけを別のBookとして保存した場合、INDIRECTの関数を使った部分がエラーの表示になってしまいます。(よく考えればAを参照しているので当たり前なのですが。。。) Bのシートを別のBookに保存しても参照しているデーターが消えない方法(関数)はあるのでしょうか? ご存知の方がいらっしゃいましたらご教授下さい。 (説明が下手ですみません)

専門家に質問してみよう