- ベストアンサー
連動するvlookupかVBAを教えて下さい。
現在、シート2にデータ一覧表(列が100程度/行は無数です)が存在しており、シート1にvlookupで反映させています。(シート1は行ごとの印刷用) 今回、列データの追加・削除を行う事になりました。 今まではvlookupで =VLOOKUP(Z3,一覧表,81,FALSE)のように抽出していましたが、 この場合、シート2の列を挿入するたびに設定しなくてはいけません。 ※Z3にはシート2のA列(ID)を手入力します。 シート2の列に連動してシート1の関数を変化させることは出来ますか? もしくは、VBAなら可能なのでしょうか? ちなみに、シート1ではシート2のデータが無秩序に並んでいます。 何か良い方法を教えて下さい。。。。よろしくお願いいたします。
- momo_0729
- お礼率55% (97/175)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
次の方法は如何でしょうか。 =VLOOKUP(Z3,Sheet2!範囲,COLUMN(Sheet2!対象列先頭セル),FALSE)
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
列が挿入、削除されることにより「81」の数字が変わるからお困りなのですね Sheet2の一覧表範囲にタイトル行を入れて項目名で検索したらどうでしょう =MATCH("項目81",Sheet2!$1:$1,0) でカラム数が求まりますから、一覧表範囲に照らして-n、+nしてやればよいと思います 式はこうなります(「-1」のところは実際のシートにあわせて要修正) =VLOOKUP(Z3,一覧表,MATCH("項目81",Sheet2!$1:$1,0)-1,FALSE)
お礼
>列が挿入、削除されることにより「81」の数字が変わるからお困りなのですね そうなんです! ありがとうございます。助かりましたー。
関連するQ&A
- エクセル2007 VLOOKUP関数について
エクセル2007を使用し、VLOOKUP関数で別のシートから反映させています。データとなるシートの行を途中で挿入して反映させようとすると「0」といった数字が返されてしまいます。 データとなるシートは行を挿入して利用することはできないのでしょうか?このようなときはどういった対処方法がありますか?? 他の行(元からあるシートの)の値はきちんと返されます。
- ベストアンサー
- オフィス系ソフト
- Excel VBA VLOOKUP の書き方
次の関数をVBAで書くにはどのように記述すればよいでしょうか? =IF(ISNA(VLOOKUP(B2,Sheet2!A2:B9,2,FALSE)),"",VLOOKUP(B2,Sheet2!A2:B9,2FALSE)) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel VLOOKUPをVBAでやりたいのですが、分からなくて困っ
Excel VLOOKUPをVBAでやりたいのですが、分からなくて困ってます。 Sheet1のC列2行目行こうにSheet2のI列のデータを取得し (A列にデーターが入っている分、(時と場合により表示数が違う為)) なおかつ Sheet1のD列2行目以降にB-Cの差し引きをおこなう 以上のことをSheet1をアクティブにした時VBAでおこなうには、? 教えて下さい。宜しくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルVBAでVLookupを使って値を転記する
エクセル2003で商品の一覧表を作成しています。 Sheet1は商品一覧(左図) Sheet2は価格表(右図)となっています。 マクロを使用して、Sheet1のB列に価格表のデータを転記させたいと考えています。 VLookupになるのかと思い、自分でいろいろとやってみたのですが、 どうしても動作せず、挫折してしまいました。 商品一覧の最後の行までいって、空白セルがくると止まるというのが、 難しくてできませんでした。 どうかお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルの関数VLOOKUPについて教えて下さい。
エクセルの関数VLOOKUPについて教えて下さい。 範囲にあたるデーター部分が3つのかたまりに分かれている時どのような数式で表すことができますか? 具体的には、HIJ KLM OPQの列位置にある3つの表の中から検索したいのです。 作った数式は1つの表から検索するもので =IF(C9="","",IF(ISNA(VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE)),"未登録",VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE))) です。(C9,材料一覧!$H$5:$J$54,2,FALSE)の後に&(同じ数式で列文字を入れ替えて)で繋げてみました。列範囲KLMの表は上手くいったのですが、3つ目のOPQの表は上手くいきませんでした。 原因と正しい数式を教えて下さい。 よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- VBAでVlookupを使って
いつもお世話になっています。 VBAで現場検索登録シートと言うところに 一覧シートからVlookupを使って 表示させようと思い作りました。 エラーも何もでません。 ただ、表示されるものがちゃんと検索されるものと まったくされないものがあります。 Vlookupはマクロの記録から作ったものです。 原因がわかりません。 よろしくお願い致します。 '検索ボタン Private Sub CommandButton6_Click() '送り方 Range("C4:D4").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,22,FALSE)" Selection.Value = Selection.Value '封筒 Range("C5:D5").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,23,FALSE)" Selection.Value = Selection.Value '得意先名ふりがな Range("C6:F6").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,6,FALSE)" Selection.Value = Selection.Value '得意先名 Range("C7:F8").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,4,FALSE)" Selection.Value = Selection.Value '現場名ふりがな Range("C9:H11").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,9,FALSE)" Selection.Value = Selection.Value '現場名 Range("C10:H11").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,7,FALSE)" Selection.Value = Selection.Value End Sub エラーも何もなく、ちゃんと動くことは動きます。 検索結果が、検索コードによって違うのです。 よろしくお願い致します
- ベストアンサー
- その他(プログラミング・開発)
- VLOOKUP関数についてどなたか教示願います
下記の表 価格の列(黄色の部分)でVLOOKUP関数が機能しない部分がでてきました。 データを反映させたいのですが、考えられる原因と解決策を教えてください。 E2はVLOOKUP(A2,H2:I6,2,FALSE)と関数を使用しています F2はIF(D2=E2,"正","違")と関数を使用しています 入力した数値が、文字列などで抽出できないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- VLOOKUP関数をVBAで書くには
EXCEL VBAの初心者です VLOOKUP関数をVBAで書きたいのですが、よくわかりません すいませんがどなたかご教授、願えないでしょうか? sheet1 sheet2 A B A B 名称 CD 名称 CD 滋賀県 25 滋賀県 25 京都府 26 大阪府 27 大阪府 27 兵庫県 28 兵庫県 28 sheet2のA列をキーにsheet1のA列と照合して sheet2のB列にsheet1で一致した行のB列をコピーする VLOOKUP関数を使うと、sheet2のB2は =IF($A2="","",VLOOKUP($A2,Sheet1!$A$2:$B$5,2,0)) としたら、25を得ることができました VBAでする場合、どのように書けばいいのでしょうか? よろしくお願いします
- ベストアンサー
- Visual Basic
- エクセルVBA VLOOKUPについて
エクセル VBA初心者です。 関数でのVLOOKUPをVBAで作りたいのですが、上手くいきません。 あらかじめ、Sheet2の1から300行までに A列 / B列 商品名 / 商品コード が入力されています。(名前の定義=商品コード) Sheet1にユーザーフォームを利用して、データを書き込んだ後、 B列に商品名が書き込まれると、 A列に商品コードが表示されるようにしたいと考えています。 A列に =IF(B2="","",VLOOKUP(B2,商品コード,2,FALSE)) と入力していたのですが、 VBAでIfを使って出来ないかと考えてみたのですが、 上手くいきませんでした。 Private Sub Worksheet_Change(ByVal Target As Range) Dim sRow As Long Dim sColumn As Long sRow = ActiveCell.Row sColumn = ActiveCell.Column If Cells(sRow, 2).Value = True Then Cells(sRow, 1).Value = WorksheetFunction.VLookup(Cells(sRow2).Value, Worksheets("Sheet2").Range("A1:B300"), 2, False) ElseIf Cells(sRow, 2).Value = " " Then Cells(sRow, 1).Value = " " End If End Sub ご教授いただけないでしょうか? エクセル2003 WindowsXP
- ベストアンサー
- オフィス系ソフト
- VLOOKUP関数をVBAで使用したい
VLOOKUP関数をVBAで使用したい 「検索」シートにID番号を入力すると、「データ」シートのA列に入っているデータから入力されたID番号を検索し、該当するID番号のある行の横並びに入っている別の列データ(B~AG列)を取り出し、それぞれを「検索」シートの様々なセルに表示するVBAを作っていますが、VBAでVLOOKUP関数を用いる方法がよく分からず苦戦しています。 「データ」シートの1、2行目は見出しで、検索されるデータが入っているのは3行目からです。また、「データ」シートには不定期に新しいデータが追加されていきます。 「検索」シートに検索結果を表示する際も、以下のように規則性のないセル配置なので少しややこしいです。 「検索」シートのセル=「データ」シートの列 B6=B列 B8=C列 B10=D列 B11=E列 B12=F列 B13=G列 B14=H列 B16=I列 D16=J列 F16=K列 B17=L列 D17=M列 F17=N列 B20=O列 C20=P列 E20=Q列 B21=R列 C21=S列 E21=T列 B22=U列 C22=V列 E22=W列 B23=X列 C23=Y列 E23=Z列 B24=AA列 C24=AB列 E24=AC列 B26=AD列 E26=AE列 B29=AF列 B31=AG列 このような動作をVBAでさせることは可能でしょうか? また、検索して該当するID番号がなかった際も、VBAだとそこで動作が止まってしまうので、「該当するID番号がありません」といったエラー判定が出るようにすることはできますか? 教えてください。よろしくお願いします。
- 締切済み
- オフィス系ソフト
お礼
上手く動きました。ありがとうございます。