• 締切済み

A列の表の値を別の表の該当セルに転記していく。

新たに質問させていただきます。 Sheet2にこのような表があります。 Sheet1A列にランダムで数字が並んでいます。503、401、310 ・・・ A1"503"は、Sheet2の表のF2に入ります。同様に Sheet1A2"401"は表のH6にはります。 このようにA1をSheet2F2に転記するのに 表のI列で検索し、該当のI1を見つけD1:H1,D3:H3からF1を見つけF2に転記していくことは可能でしょうか?

  • ysans
  • お礼率45% (5/11)

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>表には数式を入れたくありません。 >貼りつけていく方法はありませんか? コピー貼り付けは手動の操作ですが,つまりそういうコトをマクロでやりたいというコトですか? 元のご相談にはそんなことは何も書いてありませんが。 マクロのロジック自体は,数式で計算しているのとだいたい一緒ですから,応用も容易いと思います。 sub macro1()  dim h as range  dim c as range  dim target as range  on error resume next  worksheets("Sheet1").select  for each h in range("A1:A" & range("A65536").end(xlup).row)  if h <> "" then   set target = worksheets("Sheet2").range("I:I").find(what:=h \ 100, lookin:=xlvalues, lookat:=xlwhole)   set c = worksheets("Sheet2").range("D1:H1,D3:H3").find(what:=h mod 100, lookin:=xlvalues, lookat:=xlwhole)   worksheets("Sheet2").cells(target.row + c.row, c.column) = h.value  end if  next end sub

  • kybo
  • ベストアンサー率53% (349/647)
回答No.3

>表には数式を入れたくありません。 数式を入れて、数値が表示されたら、 表を範囲選択→形式を選択して貼り付け→値でOKすればよいだけだとおもいますが。 >貼りつけていく方法はありませんか? どういう回答を期待しているのか知りませんが、1)または2)になると思われます。 1)ひとつひとつ目で確認して、手作業でコピー&ペーストする。 2)マクロでする。(マクロの知識がないなら、あきらめて下さい)

ysans
質問者

補足

ありがとうございます。 2)マクロでする。 でお願いできますか?

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

D2に =IF(COUNTIF(Sheet1!A:A,$I1*100+D1),$I1*100+D1,"") と記入してH2までコピー貼り付けます D4に =IF(COUNTIF(Sheet1!A:A,$I1*100+D3),$I1*100+D3,"") と記入してH4までコピー貼り付けます D1:H4をコピーし,リストの下端まで貼り付けます。

ysans
質問者

お礼

ありがとうございます。 たしかに表示されますが 表には数式を入れたくありません。 貼りつけていく方法はありませんか?

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

D2のセルに以下の様に入れ、H2までコピー。さらにD2:H2をD4:H4、D6:H6・・にコピー。 =IF(COUNTIF(Sheet1!$A:$A,VALUE(OFFSET($I$1,INT(((ROW(G1)-1)/4))*4,0)&TEXT(D1,"00")))>0,VALUE(OFFSET($I$1,INT(((ROW(G1)-1)/4))*4,0)&TEXT(D1,"00")),"") 強引に1つの式でしているので、式が長くなっていますが、 例えば503がSheet1のA列にあるかどうか判断し、あれば表示するという形にしています。

ysans
質問者

お礼

ありがとうございます。 たしかに表示されますが 表には数式を入れたくありません。 貼りつけていく方法はありませんか?

関連するQ&A

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

  • 作成の表の値を別シートに移したい

    Sheet1に画像の表にあるように、Sheet1のC列のA+Bの結合番号の数字(例えば11とか118とか15007など)をSheet2のあるセルに入力すると、Sheet2へSheet1のD・E・Fのセルにある数字が移るようにするには、関数はどのようにしたらよいでしょうか。Sheet1のC列セルの「BC結合番号」はランダムの数字で最高7桁、最低1桁ですし、同一番号が「BC結合番号」(空欄セルがあるので)とびとびの行に1桁と2桁の数字が出てきます。また、A列セルの番号は50行程度こどに2・3・4・・・・30ぐらいまでと増えていきます。当然、D・E・Fのセル値はSheet2へ移行した時は、単独で評値が入るようにしたいのです。また、リンク貼り付け以外の方法でやりたいのです。(初心者でマクロは使えません。)

  • VBA 別BOOKへのデータ転記について

    VBA初心者です。 以下のことがしたいのですが、 コードをご教示いただきたくお願いいたします。 BOOKが5つあります。 BOOK1:抽出用(Sheet2に日々の受注データを入れています)        BOOK2:転記100用 BOOK3:転記200用 BOOK4:転記300_400_500用 BOOK5:工事番号用 BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。 抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、 抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、 該当のBOOK2から4にその工事番号が転記がされているか? (されていれば登録済みのメッセージ表示) 転記がされていなければ新規に登録、 新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、 このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。 さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、 BOOK5にも抽出用の受注内容を転記。 BOOK2から4に転記された工事番号をクリックすると その工事番号のBOOK5にジャンプするようにしたいのです。 抽出用A2とA4に「1」と入力された場合(O列は共に200) BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地 A2のデータ D2 → A7 K2 → A8 C2 → A9 H2 → A10 I2 → A11 F2 → D7 L2 → D8 M2 → D9 J2 → D10 C2 → I5 Q2 → J5 A4のデータ D4 → A12 K4 → A13 C4 → A14 H4 → A15 I4 → A16 F4 → D12 L4 → D13 M4 → D14 J4 → D15 C4 → I10 Q4 → J10 BOOK2から4は1つの工事番号を5行使用して表わしています。 ですので、1つの工事番号が7から11の行、 2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように 作成してあります。 またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。 A2のデータ D2 → A3 K2 → A4 C2 → A5 H2 → A6 I2 → A7 F2 → F3 L2 → E4 M2 → E5 J2 → E6 大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、 当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • EXCELでのデータ検索とセルへの値挿入

    お世話になります。EXCELマクロ初心者です。 sheet1のA列に数字、B列・C列空欄、D列に語幹、E列に語幹の意味、F列に単語名、G列に単語の意味が入っており、F列の総数はおおよそ7000程です。 sheet2のA列に数字、B列に数字または空欄、C列に数字または空欄、D列に語幹(ハイフンを含んだアルファベットの1部)、E列にD列語幹の意味が入力されています。 語幹別に、新規の単語を取得するたびに、sheet2の語幹部分をソートし、A列の数字が更新され、その後、sheet1のA列数字が更新され、A列・F列をキーとして、昇順にソートされます。 当初想定した以上にの語幹の数が増えてしまったので、その重要度を、sheet2のB列、C列に記録して、そのデータを、sheet1のB列、C列に転記せざるをえなくなっております。 現在、sheet1のA列に値について、1行目から、個別にsheet2A列を検索し、B列・C列のデータを検索し、これを転記するマクロを組んでいるのですが、1行ごとに検索するため、おおよそ、45秒もかかっています。 これを短縮する方法としては、検索した値を、配列変数のたとえば、iに、A列の同じ数字の行数を取得して、B列・C列に一括して、sheet2の数字(空欄の場合は空欄)をそのまま転記することだと思うのですが、残念ながら、自分では組み立てられません。 どなたか、ご教示いただければ幸いです。 なお、ご教示いただいた内容を単純にマクロに転記するようなことではなく、自分なりに消化できてから、再度ご連絡をさしあげたいと思いますので、ご理解いただければと思います。 お手数をおかけしますが、よろしくお願いします。

  • EXCEL:形式が違う別bookへの転記

    マクロほぼ初心者のため、形式が違う別Bookへの転記について悩んでいます。 どなたかご教示いただけないでしょうか。よろしくお願いいたします。 (詳細) (1)売上実績表.xls の「比較」シート     A      C     D      E     F      G      H 1 商品No.                4月              5月 2      .  2009   2010    2011   2009   2010     2011 3  100     0    1000      800      0    1200   4  101     0      0      0     0      0 5  102     800   2050    4000   500    3000 6  103 (2)売上計画表.xls の「2011」シート     C     D      E       F     G  ・・・ 1  商品No.   4月     5月    6月 2   100      800    1000   1000 3   102     4000    5000    5000 4   107     1200    500     500               (1)の2011の列に毎月実績を入力していきます。 それを(2)に転記(上書き)させたいのですが、 (1)と(2)の形式が違うためうまくできません。 今考えているのは inputboxで月を指定して、 たとえば「4月」と入力すれば (2)のC列の商品No.と(1)のA列の商品No.をみて、 (1)E列の値を(2)D列に転記させ 「5月」と入力すれば (1)H列の値を (2)E列に転記させたいのですが・・・ 恥ずかしながら、下記のように列を指定して転記させる レベルでストップして、困っています・・・ Sub 転記() Dim LastRow As Long With Workbooks("売上実績表.xls").Sheets("比較") LastRow = .Range("D65536").End(xlUp).Row Workbooks("売上計画表.xls").Sheets("2011").Range("D2:D" & LastRow).Value = .Range("E3:E" & LastRow).Value End With End Sub どうかよろしくお願いいたします。

  • 指定セルへ転記するマクロで値が無い場合固定値転記

    シート2の1行目の指定したセルの値をシート1の指定セルに 転記を行いシート1が印刷。 印刷後はシート2の2行目の指定したセルの値をシート1の指定したセルに 転記してシート1が印刷。 シート2にデータが無くなったら停止という以下のマクロにて シート2のO列はシート1のセルA19に順次転記なのですが O列は運用上空白が有る場合が判明した為 値がある場合はその値を転記、値が無い場合は半角で ZZZ と 転記をしたいのですがどこを変更していいのか分かりません。 よろしくお願いします。 Sub データ転記() Dim myRng(1 To 23) Dim cpRng Dim i As Integer Dim n As String, myStr As String With Sheets("Sheet2") Set myRng(1) = .Range("B2") Set myRng(2) = .Range("C2") Set myRng(3) = .Range("D2") Set myRng(4) = .Range("D2") Set myRng(5) = .Range("D2") Set myRng(6) = .Range("E2") Set myRng(7) = .Range("E2") Set myRng(8) = .Range("F2") Set myRng(9) = .Range("F2") Set myRng(10) = .Range("H2") Set myRng(11) = .Range("J2") Set myRng(12) = .Range("K2") Set myRng(13) = .Range("K2") Set myRng(14) = .Range("L2") Set myRng(15) = .Range("M2") Set myRng(16) = .Range("N2") Set myRng(17) = .Range("O2") Set myRng(18) = .Range("P2") Set myRng(19) = .Range("Q2") Set myRng(20) = .Range("R2") Set myRng(21) = .Range("S2") Set myRng(22) = .Range("U2") Set myRng(23) = .Range("G2") End With cpRng = Split("B10,O4,G3,F10,F13,G10,G13,H10,H13,O3,L10,M10,M13,O5,E19,F19,A19,O6,D21,B6,I19,J19,G5", ",") '転記先配列化 With Sheets("Sheet1") .Range("B10,G3,F10,F13,G10,G13,L10,E19,F19,J19,O7,O8,C19,D10,D13,A19,O4,O5").NumberFormatLocal = "@" Do While myRng(1) <> "" For i = 1 To 23 .Range(cpRng(i - 1)).Value = myRng(i).Value Next .Range("C3,C13").Value = Left(.Range("O3").Value, 10) .Range("C10").Value = Mid(.Range("O3"), 11, 6) .Range("O7").Value = Format(Range("O6").Value, "0000000") .Range("O8").Value = Format(Range("J19").Value, "0000000") Call 加工01 Call 加工02 '印刷 .PrintOut For i = 1 To 23 Set myRng(i) = myRng(i).Offset(1) Next i Loop .Range("B10,O4,G3,F10,F13,G10,G13,H10,H13,O3,L10,M10,M13,O5,E19,F19,A19,O6,D21,B6,I19,J19,C3,C10,C13,C19,D10,D13,O8,O7,G5").ClearContents End With For i = 1 To 23 Set myRng(i) = Nothing Next MsgBox "印刷終了" Sheets("Sheet2").Select Cells.Select Selection.Delete Shift:=xlUp Sheets("Sheet1").Select Range("C3").Select End Sub

  • excel 別シートへのデータの転記

    sheetが二枚あります。 sheet1 元データ sheet2 転出先(三種類あります) sheet1のA列に〇がついていたらsheet1Q列のシート名を見て、 転出先に同じデータがあるか?無ければ新規作成をするか? 新規作成をする場合には以下のように、 そのシート名の各セル番地にデータを転記。 sheet1のA列2行目移行同じ繰り返しで○があるか見に行く。 sheet1の1行目は項目名になります。 A2に○が付いていてQ列のシート名が100だった時 A2のデータを以下のように。 sheet1   sheet2(シート名は100) P列の値 → A7へ C列の値 → A8へ H列の値 → A9へ I列の値 → A10へ F列の値 → E5へ L列の値 → D6へ M列の値 → D7へ K列の値 → F9へ J列の値 → D8へ 続けてA4に○が付いていてQ列のシート名が100だった場合。 sheet1   sheet2(シート名は100) P列の値 → A12へ C列の値 → A13へ H列の値 → A14へ I列の値 → A15へ F列の値 → E10へ L列の値 → D11へ M列の値 → D12へ K列の値 → F14へ J列の値 → D13へ 以上のようなことがしたいのですが、 参考書でサンプルなどを見てやっているのですが、 なかなかうまくいきません。 コードのご教示をお願いたします。

  • 別シートから値のある行を検索し、別シートに転記

    シート1とシート2があり、 シート1のA7がシート2のB列にあり、シート1のB20がシート2のその行のD列の値と同じ場合、シート2該当行のF列の値をシート1のL20に書き込むのですが、どのようにマクロを記述すればいいでしょうか 例えば、 シート1のA7に「A社」、B20に「商品A」があり、 シート2のB10に「A社」が、D10に「商品A」がある場合、F10の値をシート1のL20に返す方法です。 シート2のB列には「B社」や「C社」もあるため、B列の中からシート1のA7と合致する行を検索することになります。

  • 1の表の値を2表から探してその隣列の値を3表へ貼付

    なかなかうまくできないため、もう少し詳しくかきます。 表画像は細かいので貼りつけません。excel2007 (1)book1.の表の値を (2)book2.の表の中から見つけて、その隣の列の値を (3)book3.の表の該当する箇所にふりがな表記の縦書きにして貼付けます。 book1.sheet1 B3から下方に英数字の値が1000行程度羅列しています。 例)a243,a546,b124... その値をbook2.sheet1 A列の中から見つけ、 その隣B列の値"文字列"を book3.sheet1の表の該当箇所に、 ふりがな表記の縦書きにして貼付けます。 book3.の表は、A2:Y2 までの列に25,24,23,22,...1と A5:Y5の列に50,49,48...26と数字が左から右に並んでいて、 このA2:Y7で1グルーブになり、Z2に"A1グループ"となっています。 このグループが下方に"A1グループ"~"A8グループ" 8グループあるというような表です。 ちなみに"A2グループ"はA8:Y13というぐあいです。 このAグループがsheet1に,sheet2にはBグループが同じ表であります。 例)book1でa243という値は最終的にbook3のA2グループの43のセルの2つ下H13に (2)(3)という方法で貼付けます。 b124という値はbook3 sheet2 Bグループの表”B1グループ"の24のセルの2つ下B:4に貼付けられます。 よろしくお願いします。

  • セルの転記

    EXCELで「累積」というシートのD列で何か値が入っている一番下の行にあるH列のセルに入っている値を「パラ」というシートのC2に転記したいです。 マクロの記載を教えて下さい。 よろしくお願い致します。

専門家に質問してみよう