(1)枚目の表 E列    F列   
  コード S570SEM SEMEDS
時数 7.5  3

(2)枚目の表 UHRSEM SEMEDS S570SEM
           3    7.5

(1)枚目の表の時数のデータを(2)枚目の同じコードの列に時数を挿入する方法を
 教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

やはり下にまだあったんですね。

想像しきれませんでした。
4行、追加、変更します。

Public Sub Syukei()
  Dim wsDat As Worksheet
  Dim wsIns As Worksheet
    Set wsDat = Worksheets("Sheet1")
    Set wsIns = Worksheets("Sheet2")
  Dim col1 As Integer, col2 As Integer
  Dim rw As Long '*** 追加 ***

  With wsIns
    For col2 = 1 To .Range("A1").End(xlToRight).Column
      For col1 = wsDat.Range("E1").Column To wsDat.Range("F1").Column
        If .Cells(1, col2) = wsDat.Cells(1, col1) Then
          For rw = 2 To wsDat.Cells(65536, col1).End(xlUp).Row '*** 追加 ***
            .Cells(rw, col2) = wsDat.Cells(rw, col1) '*** 変更 ***
          Next '*** 追加 ***
        End If
      Next
    Next
  End With
End Sub
    • good
    • 0
この回答へのお礼

出来ました。わかりやすい回答本当にありがとうございました。
今後は質問をわかりやすくしたいとおもいますので、
またわからない所がありましたらよろしくお願いします。

お礼日時:2001/10/25 12:57

想像して書いてみました。


Sheet1のデータをSheet2に挿入します。
Sheet2のUHRSEMがA1セルにあるとします。

標準モジュールに貼り付けます。ご参考に。
Public Sub Syukei()
  Dim wsDat As Worksheet '1枚目の表あるシート
  Dim wsIns As Worksheet '2枚目の表あるシート
    Set wsDat = Worksheets("Sheet1")
    Set wsIns = Worksheets("Sheet2")
  Dim col1 As Integer, col2 As Integer '列カウンタ

  With wsIns 'コードを調べる
    For col2 = 1 To .Range("A1").End(xlToRight).Column
      For col1 = wsDat.Range("E1").Column To wsDat.Range("F1").Column
        If .Cells(1, col2) = wsDat.Cells(1, col1) Then
          .Cells(2, col2) = wsDat.Cells(2, col1)
        End If
      Next
    Next
  End With
End Sub

この回答への補足

回答ありがとうございました。また質問ですが
Sheet1の2行目のデータは、Sheet2に挿入できたのですが、例えば3行目から50行目に入っているデータ
はどうやって挿入できるのですか。教えてください。
お忙しい所申し訳ありません。

補足日時:2001/10/25 09:59
    • good
    • 0

マクロで挿入するのですか?



項目内容が変化する場合は、マクロなしでも算式で、SEMEDSがSheet2のB1にあるとして、B2セルに

=IF(ISERROR(HLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE)),"",HLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE))

をセットすれば出ますが・・・(1枚目の表はSheet1にあるとしています。)
$E$1:$F$2は実際の範囲に変えて下さい。右左にコピーできます。Sheet1の範囲を照合して値を表示しています。挿入ではなく、あらかじめ式を登録しておきます、こういう意味?

マクロで行なうには、2枚目の表の項目名と1枚目の項目名を比較して、一致したら値を書きこむことになります。
質問があいまいでコードは書きづらいですね。

この回答への補足

マクロで挿入したいと思います。下記のモジュールを修正すれば出来ると思いますが
よろしくお願いします。

Public Sub Syukei()
  Dim wsDat As Worksheet '1枚目の表あるシート
  Dim wsIns As Worksheet '2枚目の表あるシート
    Set wsDat = Worksheets("Sheet1")
    Set wsIns = Worksheets("Sheet2")
  Dim col1 As Integer, col2 As Integer '列カウンタ

  With wsIns 'コードを調べる
    For col2 = 1 To .Range("A1").End(xlToRight).Column
      For col1 = wsDat.Range("E1").Column To wsDat.Range("F1").Column
        If .Cells(1, col2) = wsDat.Cells(1, col1) Then
          .Cells(2, col2) = wsDat.Cells(2, col1)
        End If
      Next
    Next
  End With
End Sub

補足日時:2001/10/25 10:23
    • good
    • 0

単に数式の


 =sheet1!E3
ではだめですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qエクセルの関数です。一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める。

エクセルの関数です。
一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める関数を教えてください。
添付した図で、具体的に説明します。
A列に値(時間)、B列に値があります。
この配列の中から、
F4の値(時間)と同じ値(時間)を示すA列の行から、F5の値(時間)と同じ値(時間)を示すA列の行までの中で、
F3の値と同じ値がB列にある、A列の値(時間)の内、
A列で上から最初の値(時間)
です。

min、offset、index、match を組み合わせてみるのですが、うまくいきません。
どうぞよろしくお願いします。

Aベストアンサー

こんにちは!

画像の配置でF6セルに「7」という結果が返れば良い訳ですかね?

少し長くなりますが、
=INDEX(INDIRECT("A"&MATCH(F4,A:A,0)&":A"&MATCH(F5,A:A,0)),MATCH(F3,INDIRECT("B"&MATCH(F4,A:A,0)&":B"&MATCH(F5,A:A,0)),0))
という数式を入れてみてください。

※ F3セルは質問に載っていないので余計なお世話かもしれませんが
同じようなやり方で
=MAX(INDIRECT("B"&MATCH(F1,A:A,0)&":B"&MATCH(F2,A:A,0)))
という数式になると思います。

※ エラー処理はしていません。m(_ _)m

Qエクセルで列数(列の線の位置)の違う表の作成方法を教えてください。

はじめまして。
現在、申込書のようなものを作成しています。

エクセルで作成しているのですが、記入項目の列(列の線の位置)が項目によってまちまちです。

たとえば、住所のラン(1列)の下の電話番号の項目では2列、その下のメールアドレスやHPなどは電話番号記入欄の途中から列が区切られています。

エクセルでは互い違いに列を作成することは不可能なのでしょうか?

これを書いている最中に考えたのですが、かなりマスを細分化して、結合すればなんとかなりそうなんですが、申込書のような複雑な書式の場合皆さんかなりマスを細分化して作成しているのでしょうか?

それとも、illustratorで作成するのがオーソドックスなのでしょうか?

わかりにくい質問で申し訳ありませんがどうかよろしくお願いいたします。

Aベストアンサー

Excelは表計算ソフトですし、どちらかと言えばWord等のワープロソフトで作成するのがオーソドックスかなと個人的には思います。

でも、うちの会社は大抵皆さんExcelで作りますね。
方眼紙みたいに設定してセル結合でやってます。
枠線は非表示にして完成。

Qこの列が変更されたらマクロ実行、というコードで、○列目だけは除外としたい

B列からR列目までが変更されたらマクロ実行というコードを組んでいます。
その中で、C列とD列だけは除外としたいのですが、どのようにしたらいいのでしょうか?

コードの始まりは以下のような感じです。

Private Sub worksheet_change(ByVal Target As Range)
c = Target.Column

If 2 <= c And c <= 16 Then

Aベストアンサー

If 2 <= c And c <= 16 and c <> 3 and c <> 4 Then
では?

QEXCELの表、組[A列]:番号[B列] を 組[A列]:番号[行]に変換する方法

EXCELに
A列に組、B列に番号がそれぞれ反映されている表があります。
これを
A列に組、同行に番号が横並びに配置された状態に変更したいと考えております(添付画像)。

D列にはA列の組名を「重複なし」で貼り付けます。
このとき、E列~K列にどのような数式を入力すればよろしいでしょうか?
E1に入力する数式を教えていただけるとありがたいです。
何卒よろしくお願いいたします。

Aベストアンサー

こんばんは!

画像の配置だとE1セルに
=IF($D1="","",IFERROR(INDEX($B$1:$B$1000,SMALL(IF($A$1:$A$1000=$D1,ROW($A$1:$A$1000)),COLUMN(A1))),""))

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → E1セルを選択 → 数式バー内に貼り付け →そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にE1セルのフィルハンドルで列・行方向にずぃ~~~!っとフィル&コピーします。

こんな感じではどうでしょうか?m(_ _)m

Q左から2列目を検査値とし1列目の数値を返す方法は

VLOOKUP関数では範囲の1列目で特定の値を検索し、指定した列と同じ行にある数値を返しますが、これを2列目で特定の値を検索し、左端の1列目の値を返す方法を探しています。可能でしょうか?
1列目にNo.、2列目に氏名があります。これを名前を検索して、1列目の番号を返したいわけです。列を入れ替えれば可能ですが、入れ替えずにやる方法あれば教えてください。よろしくお願いします。

Aベストアンサー

作業セルを一番左に持ってくるしかないと思います。
検索値に等しいならば1となるようにしておいて、作業セルも含めて、VLOOKUP関数の検索域としてやるわけです。
すでにデータが入っていて一番左に作業セルがとれない場合でも、列を挿入してやれば、個々の関数とか入っていても自動的にずれに対応してくれます。


人気Q&Aランキング

おすすめ情報