• ベストアンサー

エクセル関数で困っています。

エクセル関数で困っています。 Aの表とBの表を統合したいのです。 ●A表 名前  身長  体重 田中  165   65 佐竹  167   45 伊藤  124   35 ● 名前  胴囲  座高 伊藤  70   60 佐竹  65   78 鈴木  62   42 これを名前をキーにして統合した表を作りたいのです  関数を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • avanzato
  • ベストアンサー率54% (52/95)
回答No.3

#2です。 表Aに無くて表Bにある人の数が不明で数式で処理するには問題がある為VBAを使用します。 標準モジュールを追加して頂き、下記の様にしてください。 Option Explicit Sub Sample()   Dim I As Integer   Dim X As Integer   Dim SkipFlg As Integer   I = 2 '表Aの開始行   X = 12 '表Cの開始行   Application.ScreenUpdating = False   Do While Range("A" & I).Value <> "" '表Aの最終行までループ     Range("A" & X).Value = Range("A" & I).Value '名前     Range("B" & X).Value = Range("B" & I).Value '身長     Range("C" & X).Value = Range("C" & I).Value '体重     Range("D" & X).Value = 0 '胸囲     Range("E" & X).Value = 0 '座高     I = I + 1     X = X + 1   Loop   I = 7 '表Bの開始行   Do While Range("A" & I).Value <> "" '表Bの最終行までループ     SkipFlg = 0     X = 12 '表Cの開始行     Do While Range("A" & X).Value <> "" '表Cの最終行までループ       If Range("A" & X).Value = Range("A" & I).Value Then '表Cに名前がある場合         Range("D" & X).Value = Range("B" & I).Value '胸囲         Range("E" & X).Value = Range("C" & I).Value '座高         SkipFlg = 1 'あった場合は追加登録判定を付ける         Exit Do       End If       X = X + 1     Loop     If SkipFlg <> 1 Then '追加登録判定を判断       '表Cに名前がない場合       Range("A" & X).Value = Range("A" & I).Value '名前       Range("B" & X).Value = 0 '身長       Range("C" & X).Value = 0 '体重       Range("D" & X).Value = Range("B" & I).Value '胸囲       Range("E" & X).Value = Range("C" & I).Value '座高     End If     I = I + 1   Loop   Application.ScreenUpdating = True End Sub 今回のコードを実行すると表Aと表Bを結合した表Cが作成されます。 (参考画像11行目の見出しは表示されません。)

その他の回答 (2)

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.2

こんにちは。 表が同じシートにある場合で次の様なとき、   A列 B列 C列 1 名前 身長 体重 2 田中 165 65 3 佐竹 167 45 4 伊藤 124 35 6 名前 胸囲 座高 7 伊藤 70  60 8 佐竹 65  78 9 鈴木 62  42 この時、D2の数式を =VLOOKUP($A2,$A$7:$C$9,2,FALSE) E2の数式を =VLOOKUP($A2,$A$7:$C$9,3,FALSE) としてD2からE2を4行目までコピーしてください。 この例の場合、B表に田中さんが居ない為田中さんはエラーになります。 サンプルのため名前が無いのか分かりませんが意図的に名前が無いのなら別の方法が必要となります。

akis5
質問者

補足

大変わかりやすいアドバイスありがとうございます。 あと問題は ?統合された表で「田中」の胸囲 座高はエラーではなくセロ表示したいのです。 ?統合された表でA表には無かった「鈴木」の行が必要です 何かいい案ありますでしょうか・・・

回答No.1

VLOOKUP関数を使ってみてはどうでせうか? ワークシートをまたげると思いますよ。

akis5
質問者

お礼

ありがとうございます。 早速試してみます

関連するQ&A