プロが教えるわが家の防犯対策術!

部署毎に名簿リストがあります。
別シートでは個人名と他の情報があります。これには部署名がないので、
個人名の行に部署名を入れたいのですが、リストから呼び込むことは
できますか?

名簿リストは下記のようになっています。
部署1 部署2 部署3
名前a 名前b 名前c
名前d 名前e 名前f

別シート
名前a 他情報 部署名(←ここに自動で入れたい)
名前b 他情報 部署名(←ここに自動で入れたい)
名前a 他情報 部署名(←ここに自動で入れたい)

名前は重複する可能性があります。

マクロは全く経験がありません。
どなたかご教授ください。よろしくお願いします。

A 回答 (2件)

一例です。


名簿リストをsheet1のA1:J10範囲、別シートをsheet2とします。
尚、名簿リストに名前重複は無いものとしています。

C1に=IF(COUNTIF(Sheet1!$A:$J,A1),INDEX(Sheet1!$1:$1,1,SUMPRODUCT((Sheet1!$A$1:$J$10=A1)*(COLUMN(Sheet1!$A$1:$J$1)))),"")を設定、下方向にコピー
    • good
    • 0
この回答へのお礼

できました!素晴らしい!!

教えていただいた関数は全く理解不能なので、まずこの関数式?の
意味がわかるまで調べてみようと思っています。

ありがとうございました。

お礼日時:2008/07/10 10:06

>マクロは全く経験がありません


ということだが、関数でも関数の組み合わせとその意味は相当難しいので、
普通の関数でも内部では何をしているかわからなくても使うのと同じように、何をしているかわからなくても下記をやってみてください。
ーーー
ツールーマクローVBEの画面で挿入ー標準モジュールで出る画面に
Function fnd(a)
c = Worksheets("Sheet1").Range("A1:J10").Find(what:=a).Column
fnd = Worksheets("Sheet1").Cells(1, c)
End Function
をコピペする。
A-J列間での部署で、各部10人以内とした例。
(していることは、メニューの編集ー検索にある、検索に当たるFindを実行しており、Findは文字列(=この場合氏名を探すもの。Columnで見つかった列を採る)
ーー
例データ Sheet1のA-D列
部署1部署2部署3部署4
名前a名前b名前c名前x
名前d名前e名前f名前y
名前g名前h名前i名前z
Sheet2で
A列   B列(結果)
名前a部署1
名前b部署2
名前a部署1
名前e部署2
名前g部署1
名前f部署3
名前z部署4
B1には
=Fnd(A1)と入れて下方向に式を複写。
    • good
    • 0
この回答へのお礼

できました!素晴らしい!!

教えていただいたマクロも全く理解不能です。
初め上手くいかなくてあせりましたが、無事思った通りの表が完成
しました。

このマクロの意味がわかるまで調べてみようと思っています。

助かりました。ありがとうございました。

どちらの回答も私が思った通りの表が完成しましたので、早い順に
ポイントをつけました。ご了承ください。

お礼日時:2008/07/10 10:10

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