• 締切済み

シート間の参照について

EXCELを使用しています。 Sheet1のA1から下の行に、sheet2のA1から下のセルに文字列が入力されていたら入力されているセルの内容を行ごとに表示しセルが空欄になったらsheet3のA1から下のセルに文字列が入力されていたらその内容をsheet1にsheet2の文字列の続きに表示させるにはどうしたらいいのでしょうか?

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

こちらの方が良いかな =IF(Sheet2!A1<>"",Sheet2!A1,OFFSET(Sheet3!A1,-COUNTA(Sheet2!A:A),))

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

Sheet1のA1セル=IF(Sheet2!A1<>"",Sheet2!A1,INDIRECT("Sheet3!A"&ROW()-COUNTA(Sheet2!A:A))) 入力して下にコピーしてください。 A7セルからはデータが無いので0の表示になりますので A列を選択して[書式] ⇒ [セルの書式設定] ⇒ [ユーザー定義] [種類] ボックスに「0;;;@」と入力して、[OK] をクリックします。 これで0は非表示になります。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

参考に Sub Test()   Dim ws As Worksheet, LastRow As Long   With Worksheets("Sheet1")     For Each ws In Worksheets(Array("Sheet2", "Sheet3"))       LastRow = Cells(Rows.Count, "A").End(xlUp).Row       If .Cells(LastRow, "A").Value <> "" Then LastRow = LastRow + 1       If ws.Range("A1").Value <> "" Then         ws.Range("A1", ws.Cells(Rows.Count, "A").End(xlUp)).Copy .Cells(LastRow, "A")       End If     Next   End With End Sub

lastseven
質問者

補足

VBA等を使用しないで関数のみで処理することは可能ですか?

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

シートタブ的に対象シートを隣り合わせに(手動で)ならべておく。 集約シーはその範囲から外しておく。 例えば2から3までなら(2,3はシートのインデックス番号) 標準モジュールに Sub test01() j = 2 '第1行目はに出し For i = 2 To 3 lr = Worksheets(i).Range("A100000").End(xlUp).Row ’第1行目はに出し、と仮定 ->A2 Worksheets(i).Range("A2:D" & lr).Copy Worksheets("集約").Range("A" & j) j = j + (lr - 1) Next i End Sub ーー ForEachを使う手もある。 シートの指定は (1)上記はインデックス番号指定 (2)名前 (3)Nextなど で指定する方法があるのを、勉強しましたか? よく出る質問で、あまり興が乗らない課題。

関連するQ&A

  • エクセルのセルを参照して別シートに張り付ける2

    こんにちは。 エクセルのsheet1とsheet2があり、sheet1のセルに入力されている文字や数値をsheet2にコピーしたいと思っています。(sheet2には値として張り付けたい) <条件> sheet1の3行目から下(3000行目まで)をコピーしてsheet2の2行目から下(3000行目まで)に張り付けたい。 しかし、下記のように列も入れ替えたい。下記以外はコピーしない。 sheet1   sheet2  A  →  A  G  →  B  H  →  I  M  →  G  Q  →  K R+S  →  L  (sheet1のR列とS列の文字を結合したもをsheet2のL列に)  T  →  M  U  →  N このような作業を1回で行うことはできるのでしょうか? よろしくお願いします。

  • エクセルの他シート参照

    エクセルで、同ブック内の他シートのセルを、式で参照したいのですがうまく行きません。 Sheet1のL列のある行の内容をのSheet2のA15に参照したいです。 たとえば、30行目を参照するのであれば、 =Sheet1!$L$30 で参照できました。 しかし、Sheet2のA17にある数値から13850を引いた値の行(たとえば、13880とSheet2のA17に入力されていたら、30行目)を参照するために、 =Sheet1!$L$(A17-13850) と入力したのですが、「入力した数式にはエラーがあります」とエラーが表示されてしまいます。 (Sheet2のA17の値によって、Sheet2のA15に参照されるSheet1の行が変わるようにしたい) どのように指定したら正しく参照できるでしょうか。 ご回答よろしくお願いします。

  • エクセルのセル参照、一つずつ参照セルをずらしていきたい

    エクセルのセル参照の方法について教えてください。 2つのシートがあって、 ひとつのシートにはC4,D5,E6…というように行と列がひとつずつ増えていくところに値が入力されています。 このシートから、C4,D5,E6…のセルの値を取り出して 別のシートのA1,A2,A3…に縦に並んで表示させたいのですが、どのようにセルを参照させればC4,D5,E6…という 行と列がひとつずつ増えていくセルを参照できるでしょうか? よろしくお願いいたします。

  • EXCELのシートをコピーしたい。

    Sheet2にSheet1の文字列が自動表示するようにしたいのですが、 A1のセルに=Sheet!A1として、以下全てのセルに貼り付けましたが、 空欄の場合"0"と表示されます。 空欄も空欄になるようにしたいのですが、どうしたらいいでしょうか。 この場合の空欄は、""であり、" "ではありません。 よろしくお願いします。

  • Excel 別シートのセル参照

    Excel で、二つのシート間でセル参照したいのですが、シートに書き込んでおくコマンドの書き方を教えてください。 (操作) Sheet2 でA列のどこかのセルをダブルクリックしたとき、B列およびC列の該当行の値を、Sheet1 の二つの固定セルにそれぞれ表示させる。 よろしくお願いします。

  • エクセルでシート間の参照がされるところされないところがあるんです。なぜ?

    こんにちは。 エクセルで,Sheet1のセルにSheet2のセルを参照しようと思います。 Sheet1のA1のセルに,Sheet2のA1のセルを参照しようとした場合,=Sheet2!A1と入力することになると思います。 しかし,セルには,「=Sheet2!A1」と表示されてしまうのです。 他のセルには,参照された文字,数字が入っているのに,ある特定のセルだけは,上記のようになってしまいます。 どのようにすれば解決できるのでしょうか。 お教え頂ければ幸いです。 宜しくお願いいたします。<(_ _)>

  • エクセル ブック内のシート間での行の参照?

    エクセルの同じブック内のシート間で、セルを参照するのではなく、行参照?させたいのですが・・・。 例えば、、  シート1    A    B    C    D     1行目 りんご みかん いちご ぶどう     2行目 赤    オレンジ  赤   紫 と入力すると同じようにシート2にも入力されるようにしたいのと、1行目と2行目の間に行を挿入しても同じようにシート2にも挿入されたり、 さらにはA列・B列のみ入力されたりするようにしたいのですが、(C列D列には別々のデータを入力したい)どのような方法がありますでしょうか?説明がわかりにくく申し訳ないのですが、宜しくお願いします。

  • エクセルで別シートにも文章を全て参照させたい

    エクセルで別シートを参照する際、参照先の各セルの文字配置を折り返さないで表示させたいのですが、可能でしょうか? どう説明したら伝わるのか分からなくて申し訳ないのですが、、 参照元シート(以下●)でセルの幅より長い文章を入力すると、 参照先シート(以下■)ではそのセル幅内しか文章が表示されません。 隣のセルも●を参照しており、そこは空欄です。 ●では隣のセルまで文章が延びて表示されているように ■もしたいのですが関数がわかりません。 【■に使ってる関数】空欄の場合は何も表示させないようにしたいので、 =IF(●!A14="","",●1!A14) というのを使ってます。 宜しくお願い致します。

  • ハイパーリンクの参照セルのズレは防げるか?

    Excel 2002 を使用しています。 1.Sheet1 のセル C3 および Sheet2 のセル A40 に文字列 CRCN-40094 が入力されてい   ます。 2.Sheet1 のセル C3 をアクティブにして、[挿入]→[ハイパーリンク]→[このドキュメ   ント内]を選択 3.[またはドキュメント内の場所]窓内の“Sheet2”を選択した後で、[セル参照を入力し   てください]ボックス内に A40 を入力して[OK]をクリック 此れで、Sheet1!C3 は Sheet2!A40 にハイパーリンクされた状態になります。 同様の操作で、Sheet1 のセル C4、C5 を Sheet2のセル A56、A70 にそれぞれハイパーリンクさせます。ここで… 4.Shee2 の1行目に1行挿入 この場合、Sheet1 のセル C3、C4、C5 のハイパーリンク先も Sheet2 の セル A41、A57、A71 にそれぞれ1行(ステップ4で挿入した行数分)下に移動して欲しいのですが、そうはなりません。何か簡単な方法はありますか?

  • 他シートのデータを参照させたい(excel2007

    excel2007において、他のシートのデータを参照させる方法についてどなたか教えてください。 =sheet1!a1 のように入力して他のシートのデータを表示させる方法は使っているのですが、複数のセルのデータを参照させるのに手間取っています。 たとえばsheet1にある5行5列(25セル)のデータをsheet2の5行5列(25セル)に表示させたいときは、25個のセルすべてに上記のように入力すればいいのですが、参照させたい元の25セルのどこかにセルの結合が使われていると、sheet2においても同じように結合させなければsheet1と同じ表示になりません。 sheet1でセルの結合が使われたときはsheet2においても同じように「セルの結合も自動で参照させる(連動させる)」ということは可能なのでしょうか? 詳しい方いらっしゃいましたら、よろしくお願いいたします。

専門家に質問してみよう