• ベストアンサー

【Excel】 印をした行の内容を別のシートに表示します。

こんにちは ─────────────────── sheet1  A  B       C     D 1   あいうえお  東京都  1000 2   かきくけこ  大阪府  2000 3 ●  さしすせそ  愛知県  2500 4   たちつてと  福岡県  1800 5   ・      ・    ・  6   ・      ・    ・  7   ・      ・    ・  8   ・      ・    ・  ─────────────────── sheet2  A      B     C 1 さしすせそ  愛知県  2500 ─────────────────── 上記のようにsheet1にリストがあり、そのA列の中に●で印をすると sheet2にその●をした行の内容が表示されるようにしたいのですが、 sheet2 A1 B1 C1 の式を教えてください。 A列の●は一箇所です。

  • hee1
  • お礼率32% (137/422)

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

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.1

MATCH関数とOFFSET関数の組み合わせでできます。 sheet2で A1に =OFFSET(Sheet1!$A$1,MATCH("●",Sheet1!$A:$A,0)-1,1,1,1) B1に =OFFSET(Sheet1!$A$1,MATCH("●",Sheet1!$A:$A,0)-1,2,1,1) C1に =OFFSET(Sheet1!$A$1,MATCH("●",Sheet1!$A:$A,0)-1,3,1,1) それぞれMATCH関数で「●」が何行目にあるか探して、 そこからそれぞれの項目分、オフセットしています。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

No.3です。 気づくのが遅れましたが、No.2の方と被ってしまいましたね。 ただ、ちょっと気になる点があります。 質問者が誤解する可能性がありますので、あえて指摘させてもらいます。 No.2の回答の中で、 >ちなみに最後の0はこの場合は省いても特に問題はないかと思います。 とありますが、VLOOKUPの用法上最後の「0」は省略すべきではないと思います。 VLOOKUP関数の最後の(第4)引数は検索の型で、「FALSE」(「0」も「FALSE」と見なされます)を指定すると、完全一致検索になり、「TRUE」(または「1」)を指定するか省略すると完全一致しない場合に別の値を検索してしまいます。 それも、データを検索対象列で並べ替えておかないと意図しない値を検索してしまう可能性があります。 ただし、今回の質問の場合は、ただ1箇所に「●」があるだけなので、問題は生じませんが。 今後別の状況でVLOOKUP関数を使用する場合があると、思わぬ結果になることがあるので、あえて指摘させていただきました。 あと、「0」は「FALSE」と見なされるのですが、VLOOKUP関数の第4引数は、「TRUE」と「FALSE」の2種類の指定で、間違えやすいのがMATCH関数の第3引数が「-1」「0」「1」の3種類の指定することと混同してしまうことです。 まあ、結果オーライと言えばそれまでですが。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 別の方法です。 Sheet2のA1に、 =IF(COUNTIF(Sheet1!$A:$A,"●"),VLOOKUP("●",Sheet1!$A:$D,COLUMN(B1),FALSE),"") と入力して、B1:C1にコピーします。

  • yama_x
  • ベストアンサー率20% (188/940)
回答No.2

これでもいけるかと。 Sheet2のA1  =vlookup("●",sheet1!A:D,2,0) Sheet2のB1  =vlookup("●",sheet1!A:D,3,0) 以降、右から2番目の部分が、4、5、となります。 この数値は指定した範囲(A:D)の何列目かを意味します。 ちなみに最後の0はこの場合は省いても特に問題はないかと思います。

関連するQ&A

  • データ抜き出し・別シートへ貼付マクロ

    WinXP、Office2003を使用しています。 Sheet1に入力されている情報から、下記条件を抜き出し、あらかじめ用意 してある別シートに書き出したいをしたいと思っております。 業務が多く恥ずかしながら手が回らず、少しでも負荷を軽くしたいのですが ご存知の方がいらっしゃいましたらマクロを教えていただけませんでしょうか? なお、1行目にはタイトルが入っており、2行目以降に情報が入っています。 【実施したい処理】 ・B2セルに「/愛知」と入っていたら、A2・B2・C2セルの値を あらかじめ作成してある "/愛知"シートへ書き出す。 ・B2セルに「/東京」と入っていたら、A2・B2・C2セルの値を あらかじめ作成してある "/東京"シートへ書き出す。 ・B2セルに「/大阪」と入っていたら、A2・B2・C2セルの値を あらかじめ作成してある "/大阪"シートへ書き出す。 ※2000行ぐらい情報が入っています。 【イメージ(処理前)】        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 あああ/1234/111  あああ/1234/111/愛知   56789 3行目 ててて/2222/987  ててて/2222/987/東京   11122 4行目 くくく/5467/232  くくく/5467/232/愛知   65656 5行目 ままま/5555/741  ままま/5555/741/大阪   33444 【イメージ(処理後)】 愛知シート        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 あああ/1234/111  あああ/1234/111/愛知   56789 3行目 くくく/5467/232  くくく/5467/232/愛知   65656 東京シート        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 ててて/2222/987  ててて/2222/987/東京   11122 大阪シート        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 ままま/5555/741  ままま/5555/741/大阪   33444 わかりにくくて申し訳ございませんが、よろしくお願い致します。

  • Excelで別のシートの内容を表示させたい

    Sheet1のA2からC50までの範囲にデータを出力し(どこのセルに入るかは可変)、 その内容に従ってSheet2の決まったセルに表示させたいのですが、どのような式にすれば良いか教えて下さい。 条件を言葉で書くと、 Sheet1のA列に001があれば、その行のC列の値をSheet2のJ8に表示する。 参考に、Sheet1のA列はコード名、B列は計算内容、C列は計算結果が別のデータベースから出力されます。 計算結果が0だと出力されず、出力したものは2行目(1行目はタイトル行)から詰めて入ります。 その結果、A2からC50までの範囲のどこに入るかわからないのです。 よろしくお願いします。

  • 別のシートの文字列を他のシートに移すには?

    エクセル VBAで別のシートの文字列を他のシートにコピーするには どのようなコードを記入すればよろしいでしょうか? 同一ブック内に「Sheet1」と「リスト」のワークシートがある場合、 次の順序でリストのデータを他のシートに貼り付けるには どのようにコードを入力すればよろしいでしょうか? (1)2行目からのリストの使用行数を調べる。  ※リストの使用行数は変動するため、決まっていません。 (2)Sheet1は、32行しか入力できないため、(1)で求めたリストの行数から  ワークシートを必要数コピーする。 例 リストの行数が100の場合、Sheet1を3つコピーし、計4つにする。 (3)リストの図番(A列)、名称(C列)、金額(E列)をコピーし Sheet1のA,B,C列に「値」で貼り付ける。 (4)Sheet1のA,B,C列に32行貼り付け終わったら(2)でコピーした次のシートに続きのリストを貼る。 (5)リストの最後(文字が記入してある箇所)まで他のシートへのコピーが終わるまで  ワークシートを変えて続ける。 以上です。 よろしくお願い致します。 エクセルは2003、2007使用しております。

  • EXCELで別シートのデータをリンクする方法

    AシートとBシートを結合してCシートを作成したいと思っています。 ACCESSでは簡単なんですが、EXCELの知識が乏しい為どなたかご教授お願いします。 例) ○Aシートの内容 A列    B列    C列 01     01     東京都 01     02     大阪府 ○Bシートの内容 A列    B列    C列    D列 01     01     0001    品川区 01     01     0002    新宿区 01     01     0003    目黒区 01     02     0001    淀川区 01     02     0002    天王寺区 01     02     0003    大正区 ------------------------------------------------------------ ○Cシートの内容 A列    B列    C列    D列    E列 01     01     東京都   0001    品川区 01     01     東京都   0002    新宿区 01     01     東京都   0003    目黒区 01     02     大阪府   0001    淀川区 01     02     大阪府   0002    天王寺区 01     02     大阪府   0003    大正区

  • VBA 特定の行を別シートへコピー・削除

    下記のように、VBAで特定の行を抽出して別シートへコピーし、コピーした行については元リストデータを削除したいです。 具体的には、【出荷sheet】(C列注文番号は、出荷があった時に入力済)へ、注文番号に対応する行を【リストsheet】から抜き出してコピーし、コピー後は、【リストsheet】から該当行を削除したいです。 検索により調べてもうまく合致する回答が見当たらず困っています。 VBAの理解度は未熟ですが、何卒ご教授いただけると幸いです。 【リストsheet】 A列 B列  C列   D列 ・ ・ ・ J列 No. 日付 注文番号  品名 ・ ・ ・ ・ 1  1/1   A111   鉛筆  ・ ・ ・ ・ ←コピー後、削除  2   1/2   B222   ペン  ・ ・ ・ ・ 3    1/5  C555 消しゴム・ ・ ・ ・ ←コピー後、削除  ・ ・   ⇓ 【出荷Sheet】 A列 B列  C列   D列 ・ ・ ・ J列 No. 日付 注文番号  品名 ・ ・ ・ ・ 1  1/1 A111   鉛筆   ・ ・ ・ ・ 3   1/5   C555 消しゴム・ ・ ・ ・

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

    シート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と合致する行を検索することになります。

  • エクセルの空白を詰めて別シートに表示

    sheet1のデータを参照して、空白を詰めてsheet2へ表示させたいんです! sheet1(元データになるもの)  A列 |B列|C列・・・ 1行目A|100|100 2行目B|  |200 3行目C|100| 4行目D|  |200 5行目E|100| 6行目F|  |100 ・ ・ sheet2(sheet1でB列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目C|100 3行目E|100 sheet3(sheet1でC列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目B|200 3行目D|200 4行目F|100 sheet2のA1に下記の式を入力してA列とB列に数式をコピー =IF(COUNT(Sheet1!$B$1:$B$6)<ROW(A1),"",INDEX(Sheet1!A$1:A$6,SMALL(IF(Sheet1!$B$1:$B$6<>"",ROW($A$1:$A$6)),ROW(A1)))) すると下記のように表示されます。 A1=A     B1=100 A2=#NUM! B2=#NUM! A3=#NUM! B3=#NUM! 4行目から空白 sheet2のA2のところにエラーが出ていますが、「関数の引数」のところで「数式の結果」には「100」と 正解が表示されています。(B2、A3、B3も同様に)数式の結果のところには正解が表示されています。 答えの「#NUM!」のところに正解を表示させるには、どうしたらいいですか? 見よう見まねでつくったのもで。。。関数にあまり詳しくありません。 よろしくお願い致します。

  • エクセル 同じ内容行削除マクロ

    シート1、シート2のB列を比較して同じ内容の行を削除したいと思います。(シート1な内容は300行程度です。) シート2  A列  B列     栃木県3     茨城県2     福島県5 シート1  A列  B列   C列  D列  11  埼玉県1  あ  い  12  栃木県3  か  き  13  群馬県1  た  ち  14  福島県5  さ  し  15  茨城県2  な  に     上記のような例があったとします。出来上がりはシートを変えずシート1で構いません。 シート1  A列  B列   C列  D列  11  埼玉県1  あ  い  13  群馬県1  た  ち となるようなマクロをご教授お願い致します。

  • エクセルで別シートに条件の合う全てのデータ抽出

    初めまして。 いろいろ見てみたのですが解決しなかったので教えて下さい。 Sheet1には     受付日  氏名  生年月日  住所      A    B    C    D  1 2007/10/1 左藤  S50.10.10  大阪府 2 2007/10/1 鈴木  S57.04.25  奈良県 3 2007/10/2 吉村  S49.09.17  鳥取県 4 2007/10/8 山田  S49.09.09  東京都 5 2007/10/9 伊藤  S50.10.13  愛知県 6 2007/10/9 上田  S57.04.19  福岡県 上記のようなデータを下記のようにSheet2に生年月日でデータを抽出したいのですが抽出したい年月をA1に入れたらデータがとんでくるようにするにはどうすれば良いでしょうか?教えて下さい。      A    B    C    D  1  S50.10 2 2007/10/1 左藤  S50.10.10  大阪府 3 2007/10/9 伊藤  S50.10.13  愛知県 VLOOKUPで作ってみたのですが一つしかとんでこなくて下記のように全て表示でません。      A    B    C    D  1  S50.10 2 2007/10/1 左藤  S50.10.10  大阪府 3 2007/10/1 左藤  S50.10.10  大阪府 どうかよろしくお願いします。

  • Excel 対象行のみ別シートに表示したい!

    こんな事できますでしょうか?? Sheet1に住所録の表を作成したしました。 A列 郵便番号 B列 住所 C列 名前 A列に郵便番号が、入っている行のみSheet2に表示したいのですが・・・ その際、歯抜けではなく空欄行が出来ないようにしたいのです。 おわかりの方教えてくださーい!

専門家に質問してみよう