[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『他ファイルのデータにフラグをつけたい』(きよみ)
ある一覧表から違うデータ移行(フラグをつける)しようと思い、 関数をつかっているのですが、思うようにいかずに困っています。 下記一覧表と、移行先のファイルの内容を書いておきます。
一覧表(以下、A-セル名) A B C D E F G H I 1ID番号 氏 名 ふりがな 資格名 資格番号 資格番号&氏名 資格の有無 取得年月日 経過年数 2ID番号 氏名1 ふりがな 資格A 資格A番号 資格A番号&氏名 資格の有無 取得年月日 経過年数 3ID番号 氏名1 ふりがな 資格B 資格B番号 資格B番号&氏名 資格の有無 取得年月日 経過年数
別ファイル(以下、B-セル名) A B C D E F G H I J 1印刷フラグ ID番号 氏 名 入社日 資格Aフラグ 取得年月日 経過年数 資格Bフラグ 取得年月日 経過年数 2 ID番号 氏名1 入社日 資格Aフラグ 取得年月日 経過年数 資格Bフラグ 取得年月日 経過年数
・Aファイルは1人がいくつもの資格を持っている人は、 各資格ごと1行使っており、Bファイルは1人1行を使い、 資格はE列以降の該当資格にフラグ(1)を立てます。
・BファイルにはすでにID番号と氏名は入力されているので、関数は入れません。
・現在、資格フラグ(B-E2)に関数を入れているのですが、資格Aと資格Bが関係なく フラグが立ってしまうので、資格A(B-E2)には資格A(A-F2)のフラグが立ち、 資格B(B-H2)には資格B(A-F3)のフラグが立つようにしたいのです。
・関数は、「=IF(ISERROR(VLOOKUP(B2,[A.xls]Sheet1!$A:$J,6,0)),"",1)」でいれていますが、 たぶん、VLOOKUPの検索値に新たに違う関数を入れないとダメと思うのですが…
ややこしく書いていると思いますが、ご教授願います。
後々は、Bファイルを元に証明書等を作っていく予定です。 よろしくお願いします。
[エクセルのバージョン] Excel2003,Excel2002,Excel2000 [OSのバージョン] WindowsXP,Windows2000
キーとして、「ID番号&資格名」の列を ブックAの先頭列に作成しておくのはどうでしょう。
ブックAの各行のに、それぞれ違うキーがつくことになるので VLOOKUP関数で参照できるようになると思います。
以下、同じブック・別シートでのサンプルですが。 Sheet1 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [1] ID番号&資格名 ID番号 氏名 ふりがな 資格名 資格番号 資格番号&氏名 有無 取得年月日 経過年数 [2] A-001_資格A A-001 氏名1 ふりがな 資格A 資格A番号 資格A番号&氏名 有 取得年月日 経過年数 [3] A-001_資格B A-001 氏名1 ふりがな 資格B 資格B番号 資格B番号&氏名 無 取得年月日 経過年数 A2に =B2&"_"&E2
Sheet2 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [1] 印刷フラグ ID番号 氏名 入社日 資格A 取得年月日 経過年数 資格B 取得年月日 経過年数 [2] A-001 氏名1 入社日 有 取得年月日 経過年数 無 取得年月日 経過年数 E2に =VLOOKUP($B2&"_"&E$1,Sheet1!$A$1:$J$3,8,FALSE)
実際にご使用の際は、エラー処理等加え得下さい。
また、作業列の作成が不可。あるいは、A列には挿入不可 等ありましたら 別の方法を使う必要がありますので、詳細を書いて見られるのが良いと思います。
(HANA)
教えて頂いた関数で1度試してみます。 あと、その他のやり方があれば教えて下さい。
(きよみ)
>あと、その他のやり方があれば教えて下さい。
>別の方法を使う必要がありますので、詳細を書いて見られるのが良いと思います。
詳細をかかないと・・。 (とおりすがり)
自分で書いておいて「詳細って何の事だっけ?」とか 思ってしまったので、自己フォローです。
詳細ってのは 作業列の作成が不可 なのか A列には挿入不可 なのか その他気になる点があれば って事でした。
データ量や、関数を入れる範囲にもよりますが 作業列を使っておくのが わかりやすくて良いと思いますけどね。
あとは 「資格の有無」 って所には何が入っているのか気になります。
>・Aファイルは1人がいくつもの資格を持っている人は、 >各資格ごと1行使っており と言うご説明から データがある=資格を持っている かと思うのですが、もしかして「取得チャレンジ中」とか そういった情報が入っていたりするのですかね。 それともやはり「有、無」が入っているのでしょうか。
(HANA)
お返事が遅くなってすみません。 >詳細ってのは 作業列の作成が不可 なのか A列には挿入不可 なのか その他気になる点があれば
作業列やA列の挿入は可能です。 A列を挿入して「ID番号&資格名」を入れる事は理解できるのですが 作業列という意味が…A列の事でしょうか?
データ量は、約300人分のデータが移行の対象になり、1人あたり1〜5つぐらいの 資格を持っており、かなりの量になると思います。
「資格の有無」については、会社に資格証明書(合格通知)を持って来たかどうかの 確認の為だけにあるので、移行先には直接関係がないそうです。(データ管理者談)
移行先には、フラグの「1」と取得年月日だけになります。
よろしくお願いします。 (きよみ)
>作業列という意味が…A列の事でしょうか? はい、A列の事です。 A列は結果の列ではなく、結果を導くための列なので、作業列。
>データ量は、かなりの量になると思います。 ですか・・・・。 とりあえず、数式を埋め込んでみてください。
>移行先には、フラグの「1」と取得年月日だけになります。 経過年数もですよね?
E2セル(フラグ) =COUNTIF(Sheet1!$A$1:$A$10,$B2&"_"&E$1) F2セル(取得年月日) =IF(E2,VLOOKUP($B2&"_"&E$1,Sheet1!$A$1:I$10,9,FALSE),"") G2セル(経過年数) =IF(E2,VLOOKUP($B2&"_"&E$1,Sheet1!$A$1:$J$10,10,FALSE),"")
この3セルをコピーして、必要範囲に貼り付けてください。 なお、各数式の範囲を1〜10行目にしてありますので 実際の範囲に合わせて下さい。
数式だと厳しいかもしれませんが まずは、必要最低限の範囲に限って やってみてください。
(HANA)
あっっ、済みません。 COUNTIF関数を使うためには 参照元のブックを開いておく必要が有りました。
両方を開いて作業できるなら良いですが そうでない場合は違う関数を使って下さい。 =NOT(ISNA(MATCH($B2&"_"&E$1,[Book1.xls]Sheet1!$A$1:$A$10,0)))*1 の様な。。。
(HANA)
すみません、他の仕事をしていて、やっと落ち着いてできました。 取得年月日と経過年数は問題なく移行できるのですが、 資格を持ってる人のフラグ「1」は出ますが、持っていない人に「0」が出ているので 「0」を出ない方法等はありますか? 私が思ったのは、表示形式ですればいいのかなぁと思っているのですが…。
よろしくお願いします。 (きよみ)
たびたび済みません。 表示形式で対応してもらっても良いかもしれませんが ここは一つ、数式を変更して E2 =IF(ISNA(MATCH($B2&"_"&E$1,[Book1.xls]Sheet1!$A$1:$A$10,0)),"",1) F2 =IF(E2="","",VLOOKUP($B2&"_"&E$1,Sheet1!$A$1:$I$10,9,FALSE)) G2 ~~~~~ここもなおしました。 =IF(E2="","",VLOOKUP($B2&"_"&E$1,Sheet1!$A$1:$J$10,10,FALSE))
でどうでしょう。
(HANA)
すみません、確認ですが… 今 E2 =COUNTIF(Sheet1!$A$2:$A$240,$B2&"_"&$E$1) にしているのですが、この場合も下記の関数でした方がいいでしょうか?
E2 =IF(ISNA(MATCH($B2&"_"&E$1,[Book1.xls]Sheet1!$A$1:$A$10,0)),"",1)
当初「他ファイルから移行する」と言っていましたが、 データ管理者に確認しましたら、 「同一ファイルで(別シートからの移行)おこなってもいい」という確認ができましたので…。
システムを作るのに、まだ不安がありいろいろ言いますが よろしくお願いします。 (きよみ)
同じファイルで良いのなら、COUNTIF関数で良いですが 「0」が表示されてしまいますので、IF関数は有った方が 良いと思います。
E2に =IF(COUNTIF(Sheet1!$A$2:$A$240,$B2&"_"&$E$1)=0,"",1)
E2セルの式を変更した場合、戻り値が "" か 1 に成りますので F2,G2セルの式も変更になります。
表示形式で対応するのなら、この限りでは有りませんが。
(HANA)
移行する事はできましたが、移行した分から身分証明書に 氏名とフラグ「1」が入った資格名を転記できるようにしたいのです。 フォームはまた改めて書きますが、以前教えて頂いた https://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20071107133540]] ようにしようと思いますが…(VLOOK関数で)
どうでしょうか…? (きよみ)
>移行した分から と考えると、行き詰まりそうに思います。 元データも活用しながら 考えてみるのが宜しいかと思います。
表示させる順番が決まっていないなら 元データからのみで考えるのが良さそうに思います。
(HANA)
すみません。
上記で書いたように、移行したデータから身分証明書へ転記を どうしてもしたいのです。 転記したい内容を書いてみます。 W4…ID番号(手入力) Q6…氏名(移行ファイルより転記) M8〜M13…資格名(移行ファイルでフラグ「1」が」ついた資格名)
元データを参照すればいいのですが、移行したデータの意味がなくなってしまいます。 情けないと思いますが、よろしくお願いします。
(きよみ)
お伺いしてみますが (1)身分証明書へ転記する際、資格名の順番としてご希望が有りますか? (2)移行したデータは、身分証明書へ転記するために作成しましたか? (3)身分証明書は、一度に一人の物が出来れば良いのですか?
(HANA)
すみません。 >(1)身分証明書へ転記する際、資格名の順番としてご希望が有りますか? 順番は、「資格A」・「資格B」という順に入っている中の フラグが入った資格名がほしいです、
>(2)移行したデータは、身分証明書へ転記するために作成しましたか? はい。移行ファイルから転記をして印刷をしたら、 移行ファイルのA列の「印刷フラグ」にフラグを立てるようにしたいです。
>3)身分証明書は、一度に一人の物が出来れば良いのですか? 1度に10人分できればいいのですが…
無理な事とは思いますが、よろしくお願いします。
(きよみ)
済みません、どういったことをなさりたいのか分かりません。
(1)>フラグが入った資格名がほしいです つまり順番は関係ない?
(2)>はい。 でしたら、先に「印刷すること」を考えるべきです。 エクセルが扱いやすいのは、元データの様な様式で 移行したデータは 扱いにくいデータです。
非常に簡単に書くと 1 , 0.5 , 0.8 というデータを 10/10 , 1/2 , 4/5 に変更した様なものです。 「せっかく変更したのに!!」と言っても 足し算することを考えたら、 変更する前のデータを使用した方が良さそうですよね。
(3)>1度に10人分できればいいのですが… こちらも、どこにどのように? その10人はどうやって選ぶのか? など、分かりません。
(HANA)
>(1)>フラグが入った資格名がほしいです つまり順番は関係ない? 資格名が左の列から順番に並んでいますよね。 左の列からフラグが入っている順に転記してほしいのです。
>(2)>はい。 でしたら、先に「印刷すること」を考えるべきです。 エクセルが扱いやすいのは、元データの様な様式で 移行したデータは 扱いにくいデータです。
非常に簡単に書くと 1 , 0.5 , 0.8 というデータを 10/10 , 1/2 , 4/5 に変更した様なものです。 「せっかく変更したのに!!」と言っても 足し算することを考えたら、 変更する前のデータを使用した方が良さそうですよね。 扱いにくいデータとは思いますが、どうしても使いたいです。 会社のシステム管理者に聞いてみても「できる。そのために移行したのだから…」 と言われ、「自信を持ってやれ」とも言われました。
>(3)>1度に10人分できればいいのですが… こちらも、どこにどのように? その10人はどうやって選ぶのか? など、分かりません。 A4用紙に身分証明が10枚分入るようになっており、 印刷したいID番号をW4に手入力して表示させ、印刷します。
(きよみ)
う〜ん、自信を持つとか、持たないとか そう言う問題では無いのですけどね。
一応お伺いしてみますが 資格名はいくつ有りますか?
(2)>移行ファイルのA列の「印刷フラグ」にフラグを立てるようにしたいです。 関数で表示している以上、フラグをたてる事に 意味を感じないのですが。
それから、こちらも一応お伺いしてみますが (3)>印刷したいID番号をW4に手入力して表示させ、印刷します。 10人分有るのに、一つしか番号は入れないのですか?
あと一点、私にとって重要な所ですが。 身分証明書を印刷することが目的ですか? 移行データを使うことが目的ですか?
(HANA)
もしかして、 A,B,Cの資格の内、AとCのみ持っていてBを持って居ない場合
・・・・ [M] ・・・・ [Q] ・・・・ [W] [1] [2] [3] ID番号 [4] A-001 [5] 氏名 [6] 氏名1 [7] 資格名 [8] 資格A [9] ←この行は空き [10] 資格C [11] 持ってない資格の所は 空き行にしておいて良かったりするのですかね?
でしたら移行データからでも 簡単に表示出来そうに思いますが。
(HANA)
>一応お伺いしてみますが 資格名はいくつ有りますか? 17個です
>(2)>移行ファイルのA列の「印刷フラグ」にフラグを立てるようにしたいです。 関数で表示している以上、フラグをたてる事に 意味を感じないのですが。 同じ人間の証明書を1回していれば、重複して印刷しないで済むと思いますが…
>それから、こちらも一応お伺いしてみますが (3)>印刷したいID番号をW4に手入力して表示させ、印刷します。 10人分有るのに、一つしか番号は入れないのですか? すみません。W4だけではなく、各証明書フォームのID番号入力欄に入力して 表示させます。 氏名セル(Q6)に =VLOOKUP(W4,[book1.xls]さぎょう!$B$1:$BC$1288,2,0) で氏名の転記ができました。
>あと一点、私にとって重要な所ですが。 身分証明書を印刷することが目的ですか? 移行データを使うことが目的ですか? 両方です。
>持ってない資格の所は 空き行にしておいて良かったりするのですかね? 空き行にしないで、本当にフラグを立てている資格名のみ転記したいのです。
(きよみ)
今回問題なのは >空き行にしないで、本当にフラグを立てている資格名のみ転記したいのです。 この部分です。 そして、これを考えるのに私は 作業スペースは勿論必要ですが 元データから必要なデータを得た方が やりやすいと思います。
数が少なければ、「IF関数で」とも思ったのですが 17個有るとなると そう言うわけにも行かない様です。
「移行データを使わなくてもよい」と言うのなら 数式等を考えてみようかと思いますが そうで無い様ですので、これ以上のコメントは 控えさせて頂こうと思います。
移行データから表示させるのが不可能だ と言う訳ではありませんので、頑張って下さい。
(HANA)
先ほど、会社の上司から 「IF関数がすごくなると思うけど、してみてもいい」と言ってくれたので 時間がかかると思いますが頑張ってみます。
(きよみ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.