• ベストアンサー

エクセルを勉強中の者です。

エクセルを勉強中の者です。以前使用していたBASICプログラムには配列という考え方があって、DIM namae(100,10,10)---等宣言して使っていましたが、エクセルにはこのような関数はないのでしょうか。 エクセル自体が2次元配列と考えることもできますが---。よろしくお願いします。

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

  • ベストアンサー
  • sou_tarou
  • ベストアンサー率51% (196/381)
回答No.4

参考までに、エクセルのアドイン機能に分析ツールがあります。 その中に回帰分析というのがあるのですが、いわゆる散布図のデータから回帰分析を求めることは簡単にできます。 7次元までの分析はやったことがないので参考までに アドインの方法は「メニューバー」から「ツール」-「アドイン」で メニューが出ますので選択してください。 分析ツールの中に回帰分析がありますので、必ず選択してください。 ルックアップウィザードと条件付合計式ウィザードも便利です。

参考URL:
http://www.takenet.or.jp/~hayakawa/excel0/u-tanexcel01.htm
Wesley
質問者

お礼

分析ツールがあったのですね。以前に少し例題をやったことはありましたが、本格的にはやっていませんでした。本当にありがとうございました。

その他の回答 (3)

  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんばんは。 エクセルにも配列を伴う関数は多数あります。 例えば、合計を求めるSUM関数 =SUM(A1:B10) とすると10行2列の配列の合計が求まります。 外には、SUMIF,COUNT,COUNTA,COUNTIF,SUMPRODUCT等々、数え挙げればきりがないほど。 それはそうとして、 エクセル一般機能とBASICを比べること自体ちょっと違うのではありませんか。 エクセルは出来あがったアプリケーションであり、 Basicはアプリケーションをプログラムするものですよね。 比較するのならエクセルに標準でついてくるVBAと比べるべきだと思います。 VBA(Visual Basic For Application)は、Basicと同じコマンドが多数ありますから、Basicをご存知なら短期間で使えるようになるはずです。 エクセル一般機能と同時にVBAも勉強されることをお奨めします。 以上です。

Wesley
質問者

お礼

早速のアドバイスありがとうございました。参考にさせていただきます。 VBAも半年ほど前から勉強してますが、なかなか難しいですね。改めてありがとうございました。

Wesley
質問者

補足

BASIC使用時は、回帰分析プログラムで、データを扱うのにDIM(ディメンション)を使っていました。 例えば、京都府の第3小学校の5年生の男子の平成16年9月の平均身長というのを DT(26,3,5,6,1,16,9,2)というような形で表示していました。この場合7次元配列となります。 同様の回帰分析をBASIC以外でできるツールをさがしております。 エクセルでの回帰分析プログラムで配列機能があると便利だなと思ってお尋ねしました。 また、VBAで回帰分析プログラムを作ることについてもアドバイスよろしくお願いします。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

VBAなら同様に配列を定義して値を入れる事は可能ですが・・・。 他にもVBAで Ary = Range("A1:Z100") のように使うと、Ary と言う変数にセルのデータを配列の状態で取り込む事ができます。 Ary(10,1) のように指定すると、個々のデータの読み出しが可能です。 使用方が解らないと、お望みの回答はできませんが?

Wesley
質問者

お礼

早速のアドバイスありがとうございました。参考にさせていただきます。

Wesley
質問者

補足

BASIC使用時は、回帰分析プログラムで、データを扱うのにDIM(ディメンション)を使っていました。 例えば、京都府の第3小学校の5年生の男子の平成16年9月の平均身長というのを DT(26,3,5,6,1,16,9,2)というような形で表示していました。この場合7次元配列となります。 同様の回帰分析をBASIC以外でできるツールをさがしております。 エクセルでの回帰分析プログラムで配列機能があると便利だなと思ってお尋ねしました。 また、VBAで回帰分析プログラムを作ることについてもアドバイスよろしくお願いします。

noname#10657
noname#10657
回答No.1

そうですね。エクセルは2次元だし、シートを使えば3次元にもなります。 ちなみに、どういうことに使いたいのでしょうか?

Wesley
質問者

お礼

早速のアドバイスありがとうございました。参考にさせていただきます。

Wesley
質問者

補足

BASIC使用時は、回帰分析プログラムで、データを扱うのにDIM(ディメンション)を使っていました。 例えば、京都府の第3小学校の5年生の男子の平成16年9月の平均身長というのを DT(26,3,5,6,1,16,9,2)というような形で表示していました。この場合7次元配列となります。 同様の回帰分析をBASIC以外でできるツールをさがしております。 エクセルでの回帰分析プログラムで配列機能があると便利だなと思ってお尋ねしました。 また、VBAで回帰分析プログラムを作ることについてもアドバイスよろしくお願いします。

関連するQ&A

  • エクセルマクロでプログラミングを勉強しています。

    エクセルマクロでプログラミングを勉強しています。 ■ ■ ■■ ■ ■ を 101 110 101 と2次元配列化するプログラムについて教えて下さい。 また、もしよろしかったら     1   311 11■ ■  2■■  11■ ■ と表されるプログラムについても教えて下さい。

  • MicroSoft BasicのDim文とVisualBasicのDim文の違い

    私が20年前にMicroSoft Basicを使っていたときは、DIM文はDIMENSIONの略で配列型変数の宣言に使っていました。 最近VisualBasicの勉強を始めたのですが、変数の宣言はすべてDim文になっており、昔のMS BasicのDim文と意味合いが変わっているのに驚いています。 ここで質問させてください。 ・なぜ配列を意味するDimension文が変数の宣言なのか? ・どのバージョンのBasicからDim文の意味が変わったのか? 私が使用していたのはNEC N-Basic,N-88Basic,N-98Basicです。

  • エクセル2007でVBAが動きません、助けて下さい

    先日、使用していたエクセルを2003から2007に変更した所、 オブジェクトのテキストが読み込めなくなってしまいました。 マクロの記録なども試したのですが、問題が解決せず 困っています。 原因が分かる方が入らしたら、ぜひとも教えてください。 =================================== Sub namae() Dim namae1 As String Dim namae2 As String namae1 = Application.Caller namae2 = ActiveSheet.Shapes(namae1).TextFrame.Characters.Text MsgBox namae2 End Sub

  • エクセルVBA 必要な数だけ配列を確保する方法は?

    Dim a(10,1)と宣言して、セルにある10個のデータを配列aに代入したいのですが、セルに何個のデータがあるかはプログラムを書いているときには分かりません。 セルにあるデータは、プログラムを走らせるとn個あることが分かります。 それからDim a(n,1)と宣言できれば、必要な数の配列が確保できるのですが、このように必要な数だけ配列を確保するにはどうすれば良いのでしょうか?

  • Excel VBA での動的配列の宣言の仕方

    Excel VBA で動的配列を宣言したところ,上手く行きません。何が悪いのでしょうか? Dim A() As Integer MsgBox LBound(A()) として実行すると,LBound(A())のインデックスが有効範囲にありませんというエラーが出ます いったい何が悪いのでしょうか?動的配列の定義に失敗しているものと思いますが,動的配列の宣言の仕方をお教えください。よろしくお願いします。

  • 2次元配列

    2次元配列は宣言して生成しますが配列名が異なる配列を例えば100個用意するにはいちいち宣言していたらすごいプログラム量になるので何かいい方法はないでしょうか?付け足しで指定した個数(例えば100個)分名前の異なる2次元配列を生成するには? java初心者なのでサンプルプログラムがあるとありがたいです。よろしくお願いします。

  • C++、コンストラクタの引数の数を可変にしたい

    次のようなプログラムを作ろうとしています。 あるクラスComponentは DIM(整数)次元(要素数)のdouble型配列と ここで DIM は別のところでconstで宣言されています。 (他にもいくつか変数を持っているのですが話に関係ないので割愛します) とりあえずこんな感じにしたいです。 class Component{ public: double x[DIM]; Component(double x,double y,double z, ,,,,,); //コンストラクタ } ここでコンストラクタComponentは引数にDIM個の実数をとり、たとえば DIM = 3のとき Component obj(1.0,2.0,3.0); と宣言したら obj.x[0]=1.0 obj.x[1]=2.0 obj.x[2]=3.0 となるようにしたいのです。 むろん代入すること自体は代入すればよいのですが 外で宣言されているDIMによってコンストラクタの引数の数が変わってしまいます。 こういう時はどのような解決策があるでしょうか。 今書いたのと全然違うやり方でもかまいません。 (ただ何個も何個もコンストラクタをオーバーロードするのは避けたいです。 いろんなDIM次元で実験がしたく、きりがありません)。 よろしくお願いいたします!

  • VB2005でエクセルファイル作成時のエラー

    現在、VB2005ExpressEditionを使って、データグリッドビューに表示されている値を、エクセル出力するアプリを作成しています。 デバッグでは問題がなかったので、ビルドをし、出来上がった実行ファイルをデスクトップなどに移動させ、そこからアプリを起動したところ、エクセル出力のところでプログラムが異常終了してしまいました。 Releaseフォルダから直接実行ファイルを動かした場合は、正常に動作しました。 そこで、try~catchを使ってエラー箇所を判別しようとしたところ、処理開始以前の宣言のところで、エラーが発生しているようなんです。 以下がその宣言部です。 Dim app As New Excel.Application Dim wb As Excel.Workbook Dim ws As Excel.Worksheet VBでのエクセルファイル出力はこれが初めてで、VB自体も独学で勉強しているため、かなり的外れな質問になってしまっているかもしれませんが、どうしてもわからないので、どうか教えて下さい。 長文、乱文で失礼いたしました。

  • Excel VBA 配列の分割について

    Excel VBAでコーディングしていますが 行き詰っているのでお助け下さい。 (1)二次元配列に格納されている値の中から 特定の値が格納されている位置をループを使わず 取得したいのですがその方法が分かりません。 <例>  Dim x(2,2) As Valiant   x(0,0) = "あああ"   x(0,1) = "いいい"   x(0,2) = "ううう"   x(1,1) = "えええ"      ・      ・      ・ この配列から"えええ"が格納されている位置をループを使わず 取得する方法を教えてください。 ⇒ 1, 1 (2)二次元配列の指定した列(?)を一次元配列に 格納する方法も重ねて教えてください。 以上、よろしくお願いします。

  • 配列に関してです。

    Dim a(,) As Integer a= New Integer(,) {0,300,400,400,500,600,700,800}  {400,500,700,800,1000,1200,1300,1500}   {700,1000,1300,1600,2000,2000,2000,2000}   {1300,2000,2000,2000,2000,2000,2000,2000} ローカルレベルでこのように配列を宣言したのですが ・配列初期化子の次元が少なすぎます。 ・構文エラーです。 とエラーが出てしまいます。 この宣言、初期化の仕方のどこがおかしいのでしょうか?

専門家に質問してみよう