• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2000ですがINDEX関数の使い方がよく分かりません。)

Excel2000でのINDEX関数の使い方について

このQ&Aのポイント
  • Excel2000でのINDEX関数の使い方についての質問です。INDEX関数についてまだよく理解できていないので、具体的な使い方を教えていただけませんか?
  • Excel2000でINDEX関数を使用しようとすると、マクロにウィルスが含まれているかもしれないという警告が表示されますが、これについて理解できません。ダウンロードしたファイルは安全だと思いますが、正確な意味が知りたいです。
  • Excel2000での問題に関してお伺いします。カウンターのような便利な機能を作成する方法を教えていただけますか?また、INDEX関数を使う際の行と列の指定方法に関して具体的な説明をお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>将来的にはやるつもりですが、マクロというのはどういう目的のために開発されたんでしょうか? 自動実行させることを目的とした、自分自身でつくるプログラムで、もう、30年近く前から初期の表計算から搭載されてきた機能です。今、ことさらにマクロがどうかという事もありませんが、ただ、それを動かす言語は長い間に変遷してきています。今、Excel は、VB6をベースにしたプログラムが搭載されています。 本格的に使えるようになるのは、プログラミング言語そのものを学ぶことになりますが、ソルバーもゴールシークも、郵便番号ウィザードも、本来、マクロです。また、ピボットテーブルも組み込み型のマクロです。マクロを記録マクロだと勘違いしている人もいるようです。 今回の場合、ややこしいことをさせる時に、数式を使って出す方法と、プログラムを使って出す方法と、二種類あるということです。数式は、ワークシートの負担にはなりますが、マクロですと、ワークシートに結果を書き込むだけです。 >HLOOKUPに関しては「#N/A」と表示されます。何故でしょう? =HLOOKUP(5100,$J$34:$Q$53,F33,FALSE) または、 =HLOOKUP("請求額",$J$33:$Q$53,F33+1,FALSE) とすればよいと思います。

gokurosama
質問者

お礼

再度の回答ありがとうございます。 VLOOKUP,HLOOKUP,INDEX・・・勉強を始めたばっかりなので、イメージがはっきり固まって来るまで時間がかかりそうです。 教科書にあるような簡単な例ならパッと理解出来るのですが、このような(私にとっては複雑な)リストをHLOOKUPの観点からはどう見たらいいのか、など、ちょっと手間取りました。(^_^;) 取りあえず理解出来たつもりにはなりました。 プログラミング言語は関数よりもっと時間がかかりそうですね。(┬_┬) ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>マクロにはウィルスが含まれている可能性があるとかの警告が出るのですが、この意味が実はよく分かりません。 まず、マクロのセキュリティが「中」にしてあるからです。その内容は捨ててしまって結構です。目的の内容には、今回のものには関係ありません。安全だと思うのでしたら、マクロ・セキュリティは、今回の場合は「低」にしても結構です。 ="金 "&TEXT(INDEX($J$34:$R$53,$F$33,8),"[DBNum2][$-411]G/標準")&" 円也" G33:G34辺りにあるフォーム・コントロールのスピンボタンを使って、コントロールの書式設定のコントロールの部分で、$F$33をリンクセルに置いています。そうすると数字が出てきます。(右クリック->-コントロールの書式設定)(図を参考にしてください) >何故これが「行」に相当するのでしょうか? ただのカウンターです。1~20まで出るようになっています。それを、行数に代用しています。 ちょっと試しに、数式と同じものを、マクロで置き換えてみました。(Excel 2000 で試してあります)マクロに登録すると、C列50行目から同じように出てきます。但し、書式はそのままにしてあります。 '//標準モジュール Sub スピン1_Change()  Dim rng As Range  Dim i As Long  Dim buf As String  Set rng = ActiveSheet.Range("K34:Q53")  If WorksheetFunction.CountA(rng) < 3 Then Exit Sub  i = ActiveSheet.Spinners(1).Value  If i > rng.Rows.Count Then Set rng = Nothing: Exit Sub '行数を越えたら離脱   With rng   Range("C50").Value = .Cells(i, 1).Value   Range("C51").Value = .Cells(i, 2).Value   Range("C52").Value = .Cells(i, 3).Value   If .Cells(i, 7).Value <> 0 Then   buf = Evaluate("NumberString(" & .Cells(i, 7).Value & ",2)")   Range("C55").Value = "金 " & buf & " 円也"   End If  End With  Set rng = Nothing End Sub

gokurosama
質問者

お礼

回答ありがとうございます。 カウンターが行数の代用になるとは面白いですね。 無事カウンターを作ることが出来ました。 マクロのマの字も勉強しておりません。従って100%理解出来ません。将来的にはやるつもりですが、マクロというのはどういう目的のために開発されたんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

="金 "&TEXT(INDEX($J$34:$R$53,$F$33,8),"[DBNum2][$-411]G/標準")&" 円也" 上記の$F$33が検索値になってます。 この場合はJ34:J53が上から順に1からの数値になってるため、F33に入力されたコードの数値が そのまま行番号になってます。 INDEX(範囲,範囲の一番上を1とした行番号,範囲の一番左を1とした列番号) INDEX($J$34:$R$53,$F$33,8)=>J34:R53範囲の上からF33(の数値)行目の左から8列目(R列)の値 ちなみにコードがランダムでINDEX,VLOOKUP,HLOOKUPでそれぞれ同じ値を求める場合 INDEX($J$34:$R$53,MATCH($F$33,$J$34:$J$53,0),8) VLOOKUP($F$33,$J$34:$R$53,8,FALSE) HLOOKUP(8,$J$34:$R$53,MATCH($F$33,$J$34:$J$53,0),FALSE)

gokurosama
質問者

補足

回答ありがとうございます。 遅くなりました。理解するのに時間がかかっていました。 ほぼ理解出来たと思っていますが、 最後に挙げられた3つの関数ですが、HLOOKUPの引数の意味がよく分かりません。 INDEXとVLOOKUPに関しては、引数の意味も理解出来たのですが、 HLOOKUPのここで書かれている引数の意味が分かりません。 教科書ではHLOOKUP(検査値,範囲,行番号,検査の型)となっておりますが、ここで何故検査値に8を入れられたのですか?他の部分→$J$34:$R$53,MATCH($F$33,$J$34:$J$53,0),FALSEに関しては理解しているつもりですが・・・。 因みに上記の関数3つの数式を入力してみましたら、INDEXとVLOOKUPに関しては正しく表示されますが、HLOOKUPに関しては「#N/A」と表示されます。何故でしょう?(赤字部分)→ http://www.geocities.jp/rankei32000/yookyuusho1.htm

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2000ですが「関数を使用して、グラフを作成し、「5点未満」

    Excel2000ですが「関数を使用して、グラフを作成し、「5点未満」をカラー化しましょう」 という問題です。 Excelの問題を見て頂けますか?→http://www.geocities.jp/rankei32000/book1.xls ダメなら→http://www.geocities.jp/rankei32000/yookyuusho1.htm 初歩的な関数の問題は少しやって来たのですが、この問題のやり方が見当つきません。 順を追って説明して頂けないでしょうか? 宜しくお願い致します。

  • Excel2000ですが、表の行数の出し方を教えて下さい。

    Excel2000ですが、表の行数の出し方を教えて下さい。 Excelのファイルを見て頂けますか?→http://www.geocities.jp/rankei32000/book1.xls ダメなら→http://www.geocities.jp/rankei32000/yookyuusho1.htm このうち、表の行数が何という関数を使って、どのようにしたらいいのか分かりません。 よろしくお願い致します。

  • 逆インデックス関数。

    逆インデックス関数。 インデックス関数は、指定された行と列の値を返しますが、行と、列を指定してデーターを入力するにはどうしたら良いのでしょうか。

  • (EXCEL)関数に関数を組み込む方法

    例えば、VLOOK関数で、VLOOKUP(A1,'[aaa.xls]4月'!A1:C25,3,false)とした場合は、上手く動くとします。 次に、仮にA2セルに「[aaa.xls]4月'!A1:C25」と入力しておき、VLOOKUP(A1,A2,3,false)とすると上手く動きません(エラーになります) A2に「[aaa.xls]4月'!A1:C25」と入れた状態で、それを利用してVLOOKUP関数を使おうとした場合、どのようにすればいいでしょうか? どうして上記のようなことをしようとしているかというと、「aaa.xls」のシートが月ごとに分かれてしまっているからです。 別ブックで日を入れると対応するセル値を引っ張ってきたいんですが、以下のように設定しました。 VLOOKUP(A1,"'[aaa.xls]"&MONTH(A2)&"月'!A1:C25",3,false) しかし、"'[aaa.xls]"&MONTH(A2)&"月'!A1:C25"の部分が認識されず、エラーとなってしまいます。 どのように直せばよろしいでしょうか?

  • Excel2000ですが、配置で右詰になりません。

    Excel2000ですが、配置で右詰になりません。 添付したExcelのファイルを見て頂けますか?→http://www.geocities.jp/rankei32000/book1.xls ダメなら→http://www.geocities.jp/rankei32000/yookyuusho1.htm 一番下の行の数値が左表ではきっちり右詰になっていますが、右表では少し左にづれています。表示形式はどちらも会計で記号が¥です。書式は左表も右表も全く同じなのに何故位置が違って来るのか? 左の表全体をコピペするやり方ではなく(左表のような元になる表がない場合がありますので)、右の表自体を操作して直したいのですが、その方法を教えて下さいませんか? よろしくお願い致します。

  • Excel2000ですが、セル内での改行の仕方が分かりません。

    Excel2000ですが、セル内での改行の仕方が分かりません。 Excelのファイルを見て頂けますか?→http://www.geocities.jp/rankei32000/book1.xls ダメなら→http://www.geocities.jp/rankei32000/yookyuusho1.htm 上記で住所と電話番号のところで、右表を左表のようにセル内で改行したいのですが、出来ません。 左表はないものとして、コピペとかのやり方でなく、右表だけの操作で改行したいわけです。 宜しくお願い致します。

  • エクセルでVLOOKUP関数

    お世話になっています。 Excel2003を使っています。 元となる名簿のブックAがあります。 それぞれ、違うブックにVLOOKUP関数を使って、範囲をAからリンクさせるようにしています。 ブックAの名簿は人が増えたり、個人データを新たに追加する毎に行や列が増えていきます。 今のところ =VLOOKUP(A1,'[ブックA.xls]名簿'!$A$3:$W$100,3,0)) この式を違うブックに入れているのですが、 ブックAの行数が増えても、「100」のまま動きません。 ブックAの行数・列数が増えたら、リンクしてる関数を入れている、他ブックも自動的に増えるようにする方法はありますか? 初歩的な質問ですみませんが、よろしくお願いします。

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

    さっそくですが、ブック1があり、エクセル関数のvlookupを使って別ブック2から参照してあります、組み込まれている下記の関数の仕組みを解読したいのですが、別ブック2が行方不明で手元にはありませんのでわかりません。下記の関数は一つのブックから2つ(名称と価格)のシートから抽出しているのでしょうか? =IF($A2="","",IF(A1="",VLOOKUP($A2,'\\Tsclient\s\本体\[サンプル1.xls]名称'!$A$3:$H$1000,9,FALSE),VLOOKUP(A2,価格!A:G,1,FALSE))) どなたかお分かりでしたらお助けください。

  • INDEX関数がエラーになるのはなぜ。

    INDEX関数で、二つの領域から、値を取り出すとき、領域指定の所で、入力した後、タブキーを押して、何行目かというのを入力しようとすると、エラーになり、#Valueと表示され、値が取り出せないのは、なぜですか。 2つの表のうち、条件を指定して、取り出すとき、正しい値が取り出せないのです。 やり方は、間違っていないはずなのに。なぜでしょう。 教えてください。 ひとつの表から値を取り出す方はちゃんとできるのですが。

  • vlookup関数の引数を変数で指定することはできますか?

    エクセルのVBAでマクロを組み、同じフォルダ内にあるファイルにvlookup関数でリンクを張ろうかと考えています。 ファイルの構成は以下の通りです。 マクロを組んでいるファイル:Book1.xls マクロが適応されるファイル:Book2.xls vlookup関数で参照されるファイル:Book3.xls 実際にBook1に組んだマクロは以下の通りです。 Workbooks.Open ThisWorkbook.Path & "\Book2.xls" Workbooks("Book2.xls").Activate myFile = ThisWorkbook.Path & "\" & "Book3.xls" b = 2 Do Until ActiveSheet.Cells(b, 1) = "" ActiveSheet.Cells(b, 6) = "=VLOOKUP(E" & b & ",myFile!$A:$F,5,0)" b = b + 1 Loop 上記マクロで実行すると、Book2が開き、vlookup関数が挿入されるところまではいきますが、 変数myFileが正常に変換されないらしく、ファイルが見つからない状態となってしまいます。 myFileの代わりにフルパスでファイルをしていすると正常にマクロは起動することは確認しましたが、 毎回作業するフォルダが変わる為、フルパス指定はできるだけ避けたいです。 基礎的な質問で恐縮ですが、 vlookup関数の引数(参照範囲)を変数で指定する方法を教えてください。 よろしくお願いいたします。

専門家に質問してみよう