• 締切済み

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

次のようなシートがあります。(シート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

専門家に質問してみよう