• 締切済み

エクセル:別のシートへ抽出したデータをリンクさせたい。

次のようなシートがあります。(シートAとします。)     A    B    C  … [1] 001  AAA [2] 002  BBB  あああ [3] 003  CCC [4] 004  DDD   [5] 005  EEE  いいい C列の空欄データは除外して、C列にデータが記入されているものだけ別のシートに(シートB)に行ごとリンクさせたいと考えています。 (この場合だと2列と5列です。) シートAには今後もデータが追加される想定で、新しいデータで当てはまるものは自動的にシートBに反映されるようにさせたいのですが…。 マクロ等は詳しくありません。できるだけ簡単にできる方法があればご教授していただきたいと思います。 よろしくお願いいたします。

みんなの回答

noname#204879
noname#204879
回答No.5

[ANo.3この回答へのお礼]に対するコメント、 「無事にできました」と仰っているのに、「ハイパーリンクが設定・・・のデータでは無効になってしまいます」てのが理解できません。何処にどのようなハイパーリンクが設定されているのか具体的に述べるべきです。

knotts
質問者

お礼

説明不足で申し訳ありません。また、度々のご回答ありがとうございます。シートAのC列に記入がある文字列はシートBにて抽出できましたが、そのデータにはすべてハイパーリンクとしてURLを組み込んであります。それがシートBではそのハイパーリンクまでは反映されていないということです。抽出できればハイパーリンクの設定も引き継げると思っていたので説明不足でした。申し訳ありません。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆こんな方法もありますよ ★SheetBに =IF(ROW(A1)>COUNTA(SheetA!$C:$C),"",INDEX(SheetA!A:A,SMALL(INDEX(SUBSTITUTE((SheetA!$C$1:$C$10<>"")*1,0,10^5)*ROW(SheetA!$C$1:$C$10),),ROW(A1)))) ★右と下にコピー

noname#204879
noname#204879
回答No.3

[ANo.2この回答へのお礼]に対するコメント、 》 数式が表示されてしまい… 私が示した数式は、通常の式とは違い「配列数式」と称するもので、入力方法が特殊です。 当該式の両端に表示した { および } は入力してはなりません。それらを省いた =OFFSET(SheetA!$A$1,SMALL(IF(SheetA!$C$1:$C$100="","",ROW(A$1:A$100)),ROW(A1))-1,COLUMN(A1)-1) を入力したら、単に Enterキーを押すのではなく、Ctrlキーおよび Shiftキーを抑えたまま Enterキーを押すのです。 [数式バー]を眺めると、式の両端に { および } が自動的に表示されます。

knotts
質問者

お礼

有り難うございました。入力方法まで丁寧に教えていただき感謝しております。データの抽出が無事にできました。ただシートAのデータにはハイパーリンクが設定してありましてそれがシートBのデータでは無効になってしまいます。ハイパーリンクまで含めてリンクさせることは何かの方法でできますでしょうか。度々申し訳ありません。

noname#204879
noname#204879
回答No.2

SheetB において、 1.セル A1 に次の配列数式を入力   {=OFFSET(SheetA!$A$1,SMALL(IF(SheetA!$C$1:$C$100="","",ROW(A$1:A$100)),ROW(A1))-1,COLUMN(A1)-1)} 2.セル A1 を次の[条件付き書式]を設定   数式が   → =ISERROR(A1)   フォント色 → 白 3.セル A1 を範囲 B1:C1 に複写 4.範囲 A1:C1 を下方にズズーッと複写

knotts
質問者

お礼

たぶんやり方が悪いのだと思いますが、数式が表示されてしまいデータのリンクは反映されませんでした。もう少しがんばってみます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

シートBの適当なセルに以下の式を貼り付けて、右方向、および下方向にコピーしてください =IF(ROW(A1)<=COUNTA(SheetA!$C$1:$C$200),INDEX(SheetA!A$1:A$200,LARGE(INDEX((SheetA!$C$1:$C$200<>"")*ROW(SheetA!$C$1:$C$200),),COUNTA(SheetA!$C$1:$C$200)-ROW(A1)+1)),"")

knotts
質問者

お礼

有り難うございました。確かに抽出できました。ただ。シートAのデータにはハイパーリンクが設定してありましてそれがシートBのデータでは無効になってしまいます。ハイパーリンクまで含めてリンクさせることができるとうれしいのですが。説明不足で申し訳ありません。

関連するQ&A

  • エクセル:別のシートへ抽出したデータをリンクさせたい。

    QNo.2970713の質問内容についてなのですが、 次のようなシートがあります。(シートAとします。)     A    B    C  … [1] 001  AAA [2] 002  BBB  あああ [3] 003  CCC [4] 004  DDD   [5] 005  EEE  いいい C列の空欄データは除外して、C列にデータが記入されているものだけ別のシートに(シートB)に行ごとリンクさせたいと考えています。 (この場合だと2列と5列です。) シートAには今後もデータが追加される想定で、新しいデータで当てはまるものは自動的にシートBに反映されるようにさせたいです。 この回答の中で、 ★SheetBに =IF(ROW(A1)>COUNTA(SheetA!$C:$C),"",INDEX(SheetA!A:A,SMALL(INDEX(SUBSTITUTE((SheetA!$C$1:$C$10<>"")*1,0,10^5)*ROW(SheetA!$C$1:$C$10),),ROW(A1)))) ★右と下にコピー あるのですが、C列がvlookuo等の数式が入っていると、#REF!となってしまします。 この#REF!を表示させない方法を教えて下さい。

  • Sheet2にある情報をSheet1のA1に1列で

    マクロを作りたいのですが、以下のようなものをどうすればできるかで詰まっています。 Sheet2にある情報をSheet1のA1に1列(A列B列C列の順)で並ぶようにしたいです。 Sheet2の内容は変わることがあるので、データがどの行まで入っているかはマクロを走らせるときにチェックしないとわからないかと思います。 [Sheet1] 111 222 333 aa bb aaa bbb ccc ddd eee -------------------------- [Sheet2] A B C 1 111 aa aaa 2 222 bb bbb 3 333 ccc 4 ddd 5 eee 素人な質問かもしれないですが、調べてもわからなかったので、教えていただけると幸いです。

  • エクセルで列にあるユニークなデータの個数が知りたい

    おはようございます。 エクセルでA列に以下のようなデータがあるとします。 この中で何種類のデータがあるのかを知りたいのです。 この場合は、AAA,BBB,CCC,DDD,EEEの5種類なので5という答えが欲しいのです。 ただし、A列に入るデータは非常に多岐(800種類以上)に渡ります。 また、印刷を前提としてるためソートなどはできません。 さらに1枚のシートにこのようなデータがいくつかあるので、その決まった範囲内で個数を抽出する必要があります。 なにとぞ皆様のお知恵をお貸しくださいませ。 よろしくお願いします。 AAA AAA BBB CCC AAA DDD DDD BBB DDD DDD EEE EEE

  • 抽出して並べ替えたい

    初めまして 非常に悩んでいます。 エクセルシートの列に下記のようにデータが並んでいます。(文字列) AAA bbb ccc (空白) BBB ddd eee (空白) AAA bbb ccc (空白) AAA eee ggg 並べ替え後 AAA AAA BBB bbb eee ddd ccc ggg eee 尚、列上でセル位置は任意で、空白行も任意です。(1つ以上です) できれば関数でお願いします。 VBAの場合、使用したことがないので詳しくお願いします。

  • 複数のシートから抽出

    検索値シート1【B】111で行い、検索範囲をシート2~4の【B】列全てを検索して一個だけ検索できたら【A】列AAAをシート1の【C】に検索結果を表示させます。シート2~4全て内容は違います。 シート1【B】列500以上全て検索値とします。関数でやり方を探しております。お分かりの方がいらっしゃれば教えてください。 シート2~4 【A】  【B】  AAA ・ 111 BBB ・ 222 CCC ・ 333 DDD ・ 444 EEE ・ 555 シート1 【A】 【B】 【C】      111        222      333

  • Excelで同一のデータを抽出して横並びに

    A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  ccc     4 bbb      12  ddd     6 ccc     10  aaa     22 ddd     6   eee     10 eee     5   bbb     7 fff       8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  aaa     22 bbb      12  bbb     7 ccc     10  ccc     4 ddd     6   ddd     6 eee     5   eee     10 fff       8 kkk 7 kkk 9 lll 4 宜しくお願い致します。

  • 【少し急いでます】エクセルについて教えてください!

    Excel2000を使っています。 A列に重複するデータがあり、B列に別データがあります(20000行強) 例)     A  B 1  001 aaa 2   001 bbb 3   001 ccc 4   002 aa 5  002 bb 6  003 aaa 7  003 bbb 8  004 ddd 9   004 eee 10  005 aa 11  006 bbb A列で重複する001は3行あり、重複しているデータは1行にまとめてB列のaaa、bbb、cccをつなげたいです。(わかりづらくてすみません) 例)     A      B 1  001  aaa・bbb・ccc 2  002   aa・bb 3  003  aaa・bbb というようにまとめたいです。 どのような方法がありますでしょうか? よろしくお願い致します。

  • 一覧表よりデータ条件抽出

    教えてください。 下記データ表があります。    A     B      C 1  12/1  AAA  94.1% 2  12/2  BBB  95.6% 3  12/2  BBB  (空白) 4  12/3  CCC  97.3% 5  12/4  DDD  98.4% 6  12/5  EEE  97.3% ・したいこと条件説明 12/2~12/4のデータのみを抽出 %の(空白)セル(行)は抽出しない 日付(A列)は表示しない ・表示結果    A    B 1  BBB  95.6% 2  CCC  97.3% 3  DDD  98.4% としたいのですが・・・ いろいろ試してみましたが、うまくいきません。 よろしく、ご教授のほどお願いします。

  • (EXCEL)重複したデーターの抽出について

    EXCEL2003 シート「sheet1」に下記のようなデーターがあります。 <sheet1>   A   B   C  D 1 りんご 青森 AAA BBB 2 みかん 愛媛 CCC DDD 3 みかん 青森 AAA BBB 4 りんご 青森 AAA BBB 5 みかん 愛媛 CCC DDD A列とB列が同じ値のものをシート「sheet2」に重複しているデーター は1行だけになり、E列にカウントした数が入力されるようにしたいです。 (C列やD列は同じ値でなくてもA列とB列が同じ値の時にカウントして抽出したいです) <sheet2>   A   B   C  D   E  りんご 青森 AAA BBB  2  みかん 愛媛 CCC DDD  2   ご教示のほどお願いします。

  • EXCELのVBAで空白列を削除して左づめにできますか?

    いつも参考にしています。まだ、マクロの記録にチョット手を加えて自動化?している程度の腕前ですが? 仕事の都合で下記の問題を解決しなくてはならなくなり、皆様のお知恵をお借りしたいと思い質問させて頂きます。 エクセルのワークシートに空白のセルがランダムに入っているデータがあります。これを、ある列まで(例ではD列までの左の空白セルをなくして左づめのデータとしたいのです。 (例)  | A | B | C | D | E | 1|AAA|BBB|CCC|DDD|EEE| 2|   |BBB|CCC|DDD|EEE| 3|AAA|   |CCC|DDD|EEE| 4|AAA|   |CCC|   |EEE| 5|   |   |   |DDD|EEE|     ↓  | A | B | C | D | E | 1|AAA|BBB|CCC|DDD|EEE| 2|BBB|CCC|DDD|   |EEE| 3|AAA|CCC|DDD|   |EEE| 4|AAA|CCC|   |   |EEE| 5|DDD|   |   |   |EEE| ここで、E列以降は詰めないでほしいのです。 できれば、VBAで実現したいのですが、どのような考えで、どのようなコード?を書けばよいのか教えてください。 質問の仕方も用途を得ないで、失礼な質問になっていると思いますが、よろしくお願いします。

専門家に質問してみよう