- ベストアンサー
エクセルの質問:シートの列のデータを他のシートに自動入力する方法
- エクセルの質問文章から、シートの列のデータを他のシートに自動入力する方法について知りたいです。
- シート1の特定の列の値に応じて、他のシートの特定のセルにデータを入力する方法を教えてください。
- シート2・3・4を自動的に上に詰める方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
G列に9から12の番号を計算させ、その番号を手掛かりにシート2に「ああ」と「ええ」を取ってくることに成功しました。 あとは単純な応用で、同様にH列に12から16の番号、I列に16以上の番号をそれぞれ全く同じように並べ、各シートで番号を手掛かりにそれぞれ該当する値を引っ張ってこさせます。 添付図: シート1のH5には =IF(AND($B5<>"",12<=$F5,$F5<16),COUNT(H$4:H4)+1,"") 以下コピー シート3のA1は =IF(ROW(A1)>MAX(Sheet1!H:H),"",ROW(A1)) 以下コピー シート3のB1は =IF(A1="","",INDEX(Sheet1!$B$5:$B$999,MATCH(A1,Sheet1!$H$5:$H$999,0))) 以下コピー 先ほどの9-12の数式と並べて、よく理解してください。同じことを既に2回教わりましたので、シート3向けの数式は、今度は自力で作成してみてください。 #補足 実際にはシート1のG,H,I列の計算は、わざわざシート1に置いておく必要は全くありません。 たとえばG列の計算内容をシート2のA列に並べ、もしまだ必要ならB列に上から詰めた1,2,3を並べ、C列に答えを並べるように配置して、シート1をすっきりさせておくのもありです。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに的確な回答は出ていますが・・・ VBAでの一例です。 ※ 仮に各Sheetに数式が入っている場合、マクロを実行するとすべて消えてしまいますので 新たにBookを開き、Sheet1にデータをコピー&ペーストしてからマクロを試してみて下さい。 ・新規BookにはSheet4まで必ずSheetを挿入しておいてください。 ・Sheet1はSheet見出しの一番左側に配置しておきます。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 振り分け() 'この行から Dim i As Long Dim k As Long Dim tmp As Variant Dim ws As Worksheet Set ws = Worksheets("Sheet1") '←「Sheet1」は実際のシート名に! For k = 2 To 4 Worksheets(k).Cells.ClearContents Next k For i = 5 To ws.Cells(Rows.Count, 2).End(xlUp).Row tmp = ws.Cells(i, 6) If tmp >= 9 Then Select Case tmp Case Is < 12 With Worksheets(2).Cells(Rows.Count, 2).End(xlUp).Offset(1) .Value = ws.Cells(i, 2) .Offset(, -1) = Worksheets(2).Cells(Rows.Count, 2).End(xlUp).Row - 1 End With Case Is < 16 With Worksheets(3).Cells(Rows.Count, 2).End(xlUp).Offset(1) .Value = ws.Cells(i, 2) .Offset(, -1) = Worksheets(3).Cells(Rows.Count, 2).End(xlUp).Row - 1 End With Case Else With Worksheets(4).Cells(Rows.Count, 2).End(xlUp).Offset(1) .Value = ws.Cells(i, 2) .Offset(, -1) = Worksheets(4).Cells(Rows.Count, 2).End(xlUp).Row - 1 End With End Select End If Next i End Sub 'この行まで ※ 関数でないので、Sheet1のデータ変更があっても別Sheetに反映されません。 データ変更があるたびにマクロを実行する必要があります。 ご希望の方法でなかったらごめんなさいね。m(_ _)m
補足
できました。ありがとうございます。 本当にありがとうございます。 シート1のB1が何もない場合の対処があれば… ””が返すようにしたいのですが、どこにifをいれればいいのかわからず… よければB1が空の場合””がシート2のB1に返す記述をお願いいたします。 gooの教えては初めて今回使いましてどうすれば最高にお礼ができるのかわからずなので 何かありましたら言ってください、是非そうさせていただきますので。 すみません、何卒よろしくお願いいたします。