ここから本文です

現在、従業員の名簿を作成しようと思っています。 状況を説明しますと、Excelのsh...

fra********さん

2011/5/1722:36:41

現在、従業員の名簿を作成しようと思っています。
状況を説明しますと、Excelのsheet1に元のデータの表があります。
(社員番号や氏名など、従業員の情報が一覧になっている。)
それとは別

に、sheet2に、社員番号と、氏名、事業所、パートか社員が
乗っている表を作成したいと思っています。
そこで、sheet2で表を作った際に、例えばセルA1からD1までを結合し、
A1からD15までの表を作成したとします。
結合したセルに「本社」と入力した場合、
sheet1から本社の社員のみを選択し、sheet2に
自動的に入力されるようにしたいです。
ちょっと文章が複雑ですみません。
よろしくお願いします。
vlookupやifをわかんないなりにためしてみましたが、別のシートから持ってくることができませんでした。本社と入力してもエラーになりました。おねがいします。

閲覧数:
193
回答数:
2

違反報告

ベストアンサーに選ばれた回答

chi********さん

2011/5/1815:47:07

内容が把握しづらいので意図と違うかもしれません。


Sheet1が画像のようになっているとします。
本社かどうかはC列の事業所から判別するものと判断しました。


●1つ目の方法は作業列を使う方法です。

この場合はSheet1のE列が作業列です。
Sheet1のセルE2に
=C2&COUNTIF(C$2:C2,C2)
という数式を入れて下にコピー貼り付けしてください。

Sheet2のセルA2に
=IF(COUNTIF(Sheet1!$C:$C,$A$1)<ROW()-1,"",INDEX(Sheet1!A:A,MATCH($A$1&ROW()-1,Sheet1!$E:$E,0)))
という数式を入れて、セルA2をコピーして
必要な範囲(セルD15)まで貼り付けてください。


●もう1つ目の方法は作業列を使わない方法です。

Sheet2のセルA2に
=IF(COUNTIF(Sheet1!$C:$C,$A$1)<ROW()-1,"",INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$C$1:$C$100<>$A$1,10^10,ROW($C$1:$C$100)),ROW()-1)))
という数式を入れてください。
数式を入れたらセルA2を選択したまま数式バーをクリックして
SHIFTとCTRLを押した状態でENTERをすると
数式が { } で囲まれます。
{ } で囲まれた状態のセルA2をコピーして
必要な範囲(セルD15)まで貼り付けてください。

Sheet1の元のデータの範囲を
とりあえず100行目までにしてあります。
範囲がもっと広い場合には数式内の
Sheet1!$C$1:$C$100 の100という数値を増やしてください。
ただし、範囲を広げすぎると重くなると思います。

内容が把握しづらいので意図と違うかもしれません。


Sheet1が画像のようになっているとします。...

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

nig********さん

2011/5/1803:44:29

ごめん、ちゃんと読んでないから何してるか把握してないけど

とりあえず
vlookupは別のシートでも使える。

なんとなくまずそうな点を挙げると
>そこで、sheet2で表を作った際に、例えばセルA1からD1までを結合し、

関数で参照する可能性があるなら結合しない方がいいね。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる