こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

次のようなシートがあります。(シート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に反映されるようにさせたいのですが…。
マクロ等は詳しくありません。できるだけ簡単にできる方法があればご教授していただきたいと思います。
よろしくお願いいたします。

投稿日時 - 2007-05-03 20:16:33

QNo.2970713

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

[ANo.3この回答へのお礼]に対するコメント、

「無事にできました」と仰っているのに、「ハイパーリンクが設定・・・のデータでは無効になってしまいます」てのが理解できません。何処にどのようなハイパーリンクが設定されているのか具体的に述べるべきです。

投稿日時 - 2007-05-04 09:39:23

お礼

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

投稿日時 - 2007-05-04 16:53:41

ANo.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))))
★右と下にコピー

投稿日時 - 2007-05-04 02:34:34

[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キーを押すのです。
[数式バー]を眺めると、式の両端に { および } が自動的に表示されます。

投稿日時 - 2007-05-03 23:43:59

お礼

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

投稿日時 - 2007-05-04 08:12:30

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 を下方にズズーッと複写

投稿日時 - 2007-05-03 22:01:48

お礼

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

投稿日時 - 2007-05-03 22:30:04

ANo.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)),"")

投稿日時 - 2007-05-03 21:01:07

お礼

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

投稿日時 - 2007-05-03 22:28:28

あなたにオススメの質問