- 締切済み
エクセル:別のシートへ抽出したデータをリンクさせたい。
次のようなシートがあります。(シート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に反映されるようにさせたいのですが…。 マクロ等は詳しくありません。できるだけ簡単にできる方法があればご教授していただきたいと思います。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
[ANo.3この回答へのお礼]に対するコメント、 「無事にできました」と仰っているのに、「ハイパーリンクが設定・・・のデータでは無効になってしまいます」てのが理解できません。何処にどのようなハイパーリンクが設定されているのか具体的に述べるべきです。
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ ★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)))) ★右と下にコピー
[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キーを押すのです。 [数式バー]を眺めると、式の両端に { および } が自動的に表示されます。
お礼
有り難うございました。入力方法まで丁寧に教えていただき感謝しております。データの抽出が無事にできました。ただシートAのデータにはハイパーリンクが設定してありましてそれがシートBのデータでは無効になってしまいます。ハイパーリンクまで含めてリンクさせることは何かの方法でできますでしょうか。度々申し訳ありません。
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 を下方にズズーッと複写
お礼
たぶんやり方が悪いのだと思いますが、数式が表示されてしまいデータのリンクは反映されませんでした。もう少しがんばってみます。
- zap35
- ベストアンサー率44% (1383/3079)
シート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)),"")
お礼
有り難うございました。確かに抽出できました。ただ。シートAのデータにはハイパーリンクが設定してありましてそれがシートBのデータでは無効になってしまいます。ハイパーリンクまで含めてリンクさせることができるとうれしいのですが。説明不足で申し訳ありません。
お礼
説明不足で申し訳ありません。また、度々のご回答ありがとうございます。シートAのC列に記入がある文字列はシートBにて抽出できましたが、そのデータにはすべてハイパーリンクとしてURLを組み込んであります。それがシートBではそのハイパーリンクまでは反映されていないということです。抽出できればハイパーリンクの設定も引き継げると思っていたので説明不足でした。申し訳ありません。