2011-12-30 12 views
2

私たちの倉庫のマップを作成することになっています。下のセルを別のシートで選択して、ワークシートのセルの隣にセルを埋め込む方法

データには、モデル、説明、および場所が必要です。

私は、私はドラッグすると、それは='1'!g2に変わり、行全体を埋めるためにそれを使用しようとすると、

すなわち='1'!F2 を「マップ」移入するために第2のシートからのデータを使用していているとのトラブルを抱えています。 ='1'!F3

私はそれが何をしているのかを見ています...しかし、私はそのロジックを使用したくありません。私は、そのセルにその次のセルを使用したいと思っています。

答えて

1

最も簡単なのは、コピーしてから[特殊]>データを "1"に移すことです。次に、新しいシートを参照する数式をドラッグすると、期待どおりに動作します。

編集:元の質問に基づいて、これは右にある列の結果を下にドラッグするとその逆の結果になります。これは文字通り元の質問に何をしたのですか。

=INDEX(Sheet1!$F$2:$Z$8000,COLUMN(),ROW()) 

A1で始まり、いずれかの方向にドラッグします。ヘッダー行を左に追加するには、行または列を上または左に挿入します(数式サウンドを保持するため)。

EDIT:@ brettdjの提案によるTranspose関数です。私はそれが困難で動作するように見つけるが、それは確かにそれは何が起こっている明確になります:F2セルに

:あなたの対象シートの8000を入力します。

=TRANSPOSE(Sheet1!$F2:$Z8000) 

次に、これらすべてのセルが選択されて、入りますセルの1つでモードを編集し、Ctrl Shft Enterに配列を入力します。ソース範囲のサイズを変更する必要がある場合は、正しい範囲でこれらの手順を繰り返す必要があります。私は自分自身のインデックスファンだから、それにこだわるだろう。オフセットは揮発性なので、避けてください。この最後の編集が間違っていると、@brettdjが私たちを助けます。

+0

ダグのおかげで、私は "マップ"を設定する必要がある8000以上のアイテムを除いてそれを実行します。私はこれをやり始め、簡単な方法であることを念頭に置いて考えました。私はcurently間接的な議論を使用しています...しかし、それは正しいことを得るためにいくつかの値を変更する必要があります。私は簡単な方法がなければならないことを知っており、私はあまりにも揚げてそれを考えています。 – user1123546

+0

コピー元のシートと目的の最終結果について、より詳しく説明する必要があります。 1つのように、8000列に読み込みたい8000行のデータがあるようです。数式をドラッグすると予想されるので、データを中間シートに移すだけで十分ですが、他の問題があるように思えます。 –

+0

+1。あなたは 'TRANSPOSE'式のdirectlty(配列が入力された)または' OFFSET'も使用して冷静です。 'TRANSPOSE'はより透過的で監査可能です。 – brettdj

0

非ネイティブ動作であるため、コピーを実行するために小さなVBAマクロを作成し、それをキーボードショートカットに割り当てる価値があります。

ここでは、セルを右に1つコピーし、リファレンスセルを1つ下に更新する簡単な例を示します(式の絶対/相対設定を保持します)。
これは、A1スタイルアドレスを前提としています。アクティブなセルに単一のセルを参照する数式が含まれている場合にのみ機能します(そうでない場合は静かに終了します)。宛先セルの内容を静かに上書きします。

Sub CopyToRight() 
    Dim clFrom As Range 
    Dim clAddr As Range 
    Dim addr As String 

    On Error GoTo EH 
    Set clFrom = ActiveCell 
    If clFrom.Formula Like "=*!*" Then 
     Set clAddr = Range(Mid(clFrom.Formula, 2)) 
     If clAddr.Count = 1 Then 
      If clFrom.Formula Like "=*!$*$*" Then 
       addr = clAddr.Offset(1, 0).Address(True, True) 
      ElseIf clFrom.Formula Like "=*!$**" Then 
       addr = clAddr.Offset(1, 0).Address(False, True) 
      ElseIf clFrom.Formula Like "=*!*$*" Then 
       addr = clAddr.Offset(1, 0).Address(True, False) 
      Else 
       addr = clAddr.Offset(1, 0).Address(False, False) 
      End If 
      clFrom.Offset(0, 1).Formula = "='" & clAddr.Worksheet.Name & "'!" & addr 
     End If 
    End If 
    clFrom.Offset(0, 1).Select 
EH: 
End Sub 
+0

クリスおかげさまで、私はこれを試してみます。 – user1123546

関連する問題