[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『検索して転記』(uchi)
データシート A列 B列 C列 図番 長さ 個数 1 3321 L1 3 2 3322 L1 3 3 3323 L1 3 4 3323 L2 3 5 3323 L3 3
入力シート A列 B列 C列 1 3321 L1 3 ←A1に図番を入力し、検索ボタンを押すと、 2 3322 L1 3 データシートから同じ図番のデータを検索して 3 3323 L1 3 B1とC1に反映させたいです。 4 L2 3 5 L3 3 6 3322 L1 3 7 3323 L1 3 ←このように、同じ図番で長さが違うものは 8 L2 3 A8・A9のように図番を空白にしつつ、B8・B9・ 9 L3 3 C8・C9には数値を入れたいのです。
上記のように入力シートのA列に図番を入力し、検索ボタンを押したら、データシート の中から同じ図番を検索して、長さと個数を入力シートのB列およびC列に反映させる ものを作成したいのですが、どなたかご協力いただけませんでしょうか? VBAでも関数でもどちらでもかまいません。
1.同じ図番で長さが3通りある場合の転記方法がわかりません。
2.データの3行〜5行目のように図番によっては、長さが3通りあったりするので、 1通りしかない図番と区別をしやすいように、4行目5行目のように図番欄を空白で 表示させたいのですが、転記方法と同じくやり方がわかりません。
図番はひとつずつ入力して、その都度検索ボタンを押して、反映させるように作成している途中で、行き詰まってしまいました。
あまり詳しいほうではないのですが、なんとか作成したくて、質問してみました。 どなたか教えていただけたら、嬉しいです。どうぞよろしくおねがいいたします。
このへん参考になりますか?
ありがとうございます。 質問を探しても、したいことと過去ログの参照がなかなかぴったりこなかったので、 助かりました。探せなかった、が正しいですね(^^;) ちょっと解読に時間がかかるかもしれませんが、参考にしてみます。 (uchi)
こんにちは〜♪
関数案です。。。 あまり、パッとしませんけれど。。。
こんな表の場合です。。。
データシート ↓
┌─┬────┬────┬────┐ │ │ A │ B │ C │ ├─┼────┼────┼────┤ │ 1│図番 │長さ │個数 │ ├─┼────┼────┼────┤ │ 2│ 3321│L1 │ 3│ ├─┼────┼────┼────┤ │ 3│ 3322│L1 │ 3│ ├─┼────┼────┼────┤ │ 4│ 3323│L1 │ 3│ ├─┼────┼────┼────┤ │ 5│ 3323│L2 │ 3│ ├─┼────┼────┼────┤ │ 6│ 3323│L3 │ 3│ ├─┼────┼────┼────┤ │ 7│ │ │ │ └─┴────┴────┴────┘
入力シート ↓
┌─┬────┬────┬────┬────┬────┐ │ │ A │ B │ C │ D │ E │ ├─┼────┼────┼────┼────┼────┤ │ 1│図番 │長さ │個数 │ │作業列 │ ├─┼────┼────┼────┼────┼────┤ │ 2│ 3321│L1 │ 3│ │ 1│ ├─┼────┼────┼────┼────┼────┤ │ 3│ 3322│L1 │ 3│ │ 1│ ├─┼────┼────┼────┼────┼────┤ │ 4│ 3323│L1 │ 3│ │ 1│ ├─┼────┼────┼────┼────┼────┤ │ 5│ │L2 │ 3│ │ 2│ ├─┼────┼────┼────┼────┼────┤ │ 6│ │L3 │ 3│ │ 3│ ├─┼────┼────┼────┼────┼────┤ │ 7│ 3322│L1 │ 3│ │ 1│ ├─┼────┼────┼────┼────┼────┤ │ 8│ 3323│L1 │ 3│ │ 1│ ├─┼────┼────┼────┼────┼────┤ │ 9│ │L2 │ 3│ │ 2│ ├─┼────┼────┼────┼────┼────┤ │10│ │L3 │ 3│ │ 3│ ├─┼────┼────┼────┼────┼────┤ │11│ │ │ │ │ 4│ ├─┼────┼────┼────┼────┼────┤ │12│ │ │ │ │ 5│ ├─┼────┼────┼────┼────┼────┤ │13│ │ │ │ │ 6│ ├─┼────┼────┼────┼────┼────┤ │14│ │ │ │ │ 7│ ├─┼────┼────┼────┼────┼────┤ │15│ │ │ │ │ 8│ └─┴────┴────┴────┴────┴────┘
★E列に作業列を作ります。。。
E2セルへ =IF(A2<>"",1,"")
E3セルへ =IF(E2="","",IF(A3="",E2+1,1)) 下へ、ずーっとコピー。。。
★長さの抽出 B2セルへ =IF(COUNTIF(データ!$A:$A,LOOKUP(10^7,$A$2:$A2))<E2,"",INDEX(データ!B:B,MATCH(LOOKUP(10^7,$A$2:$A2) ,データ!$A:$A,0)+$E2-1))
★個数の抽出 C2セルへ =IF(B2="","",INDEX(データ!C:C,MATCH(LOOKUP(10^7,$A$2:$A2),$A:$A,0)+$E2-1))
B2 C2 の式を下へコピー。。。
*作業列は、データシートへ作って入力シートの B C列の式で 参照しても良いですね。。。
ご参考にどうぞ。。。
。。。Ms.Rin〜♪♪
********** ゴメンナサイ!!。。。追記です。。。
E2セルの式が違ってましたので、編集で訂正しました。。。
Ms.Rin〜♪♪様、おはようございます。ご親切、ありがとうございました。 まだまだ未熟もので勉強しながら解読してみますので、しばらく時間が かかると思いますが、 がんばって完成させたいと思います。
恥ずかしながら・・・質問させてください。 古い参考書片手に、勉強中なのですが、B2セルへ当てる関数のうち、
=IF(COUNTIF(データ!$A:$A,LOOKUP(10^7,$A$2:$A2))<E2,"",INDEX(データ!B:B,MATCH(LOOKUP(10^7,$A$2:$A2)
となっていて、『10^7』がどんな意味をもつのか、わかりません・・・ よろしければ、ご教示くださいませんでしょうか? どうぞよろしくおねがいいたします。
(uchi)
>『10^7』がどんな意味をもつの 大きな数・・・範囲$A$2:$A2の最大値より大きい数であれば何でも良いです。
間違いがありましたので、編集削除しました
By
By様、こんにちは。 『10^7』の件、ありがとうございました。 謎解きができて、少し前進しています。 また教えてくださいね。
(uchi)
何度もすみません。 Ms.Rin〜♪♪様の関数で、例のような表を作って、試してみました。 ちゃんと、検索ができました。図番の空白もまさに、理想通りでした。 ありがとうございました。すごいですね〜(@_@)。感動です。 ところが・・・質問の例題が悪かったようで、実際の図番のデータは、33021852Aという風に8桁の番号の末尾にA〜Zまでの英字がついているので、 例のデータシートの図番に英字を入力してみると、検索がうまくいきませんでした。英字が付いていない場合は、ちゃんと検索してくれました。
データシートは
A B C D E F G 図番 作業 図番+作業 部品名 品番 品番数量 材質 ↑8桁番号 ↑A〜Z ↑8桁+英字
といった感じです。 最初はA・Bで検索させようと作成していましたが、同じ図番で作業違いがあるので、 C列を設けてみました。
入力シートには A B C D E F G H I J 必要数 作業 図番 部品名 品番 品番数量 材質 図番+作業
11 1 12 2 ・ ・ ・ ・ 36 26まで
データのC列と同じように、入力シートにも、M列に、Eセル+Dセル(33021852Aのように)を自動で入力するように設けてみました。 今回はこれで検索させようとしていたのですが、うまくいきませんでした。 最終的には、入力シートと同じフォーマットの出力シートに反映させて、印刷という流れです。
それから、入力シートのM列のように、図番(8桁)+作業(A〜Z)にする必要がないなど、無駄なことしてるって、お気づきの点などありましたら、教えてください。 未熟者なので、質問もうまくできていないかもしれませんが、もう一度ご教示くださいませんか?よろしくお願いいたします。
(uchi)
こんにちは〜♪
>ところが・・・質問の例題が悪かったようで、実際の図番のデータは >、33021852Aという風に8桁の番号の末尾にA〜Zまでの英字がついているので、
のデータが、提示されていないので。。 良くわかりませんけれど。。。
こういう事でしょうか。。。?
こんな表の場合です。。。
データシート ↓
┌─┬─────┬────┬─────┬────┬────┬────┬────┐ │ │ A │ B │ C │ D │ E │ F │ G │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 1│図番 │作業 │図番+作業 │部品名 │品番 │品番数量│材質 │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 2│ 11111111│A │11111111A │あ │ 100│ 10│aa │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 3│ 11111112│B │11111112B │い │ 101│ 20│bb │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 4│ 11111113│A │11111113A │う │ 102│ 30│cc │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 5│ 11111113│A │11111113A │え │ 103│ 40│dd │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 6│ 11111113│A │11111113A │お │ 104│ 50│ee │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 7│ 11111113│C │11111113C │か │ 105│ 60│ff │ ├─┼─────┼────┼─────┼────┼────┼────┼────┤ │ 8│ │ │ │ │ │ │ │ └─┴─────┴────┴─────┴────┴────┴────┴────┘
入力シート ↓
┌─┬────┬────┬────┬────┬────┬────┬────┬────┬──────┬────┐ │ │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 1│ │必要数 │作業 │図番 │部品名 │品番 │品番数量│材質 │図番+作業 │作業列 │ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 2│ 1│ │C │11111113│か │ 105│ 60│ff │11111113C │ 1│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 3│ 2│ │A │11111113│う │ 102│ 30│cc │11111113A │ 1│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 4│ 3│ │ │ │え │ 103│ 40│dd │11111113A │ 2│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 5│ 4│ │ │ │お │ 104│ 50│ee │11111113A │ 3│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 6│ 5│ │A │11111113│う │ 102│ 30│cc │11111113A │ 1│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 7│ │ │ │ │え │ 103│ 40│dd │11111113A │ 2│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 8│ │ │ │ │お │ 104│ 50│ee │11111113A │ 3│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │ 9│ │ │ │ │ │ │ │ │11111113A │ 4│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │10│ │ │ │ │ │ │ │ │11111113A │ 5│ ├─┼────┼────┼────┼────┼────┼────┼────┼────┼──────┼────┤ │11│ │ │ │ │ │ │ │ │11111113A │ 6│ └─┴────┴────┴────┴────┴────┴────┴────┴────┴──────┴────┘
★C列に→作業 D列に→図番 を入力します。。。
★前回と同じ様に、作業列を作ります。。たとえば、J列に。。。
式は。。。
★図番+作業 I列 I2セルへ =IF(COUNTA(C2:D2)<2,"",D2&C2)
I3セルへ =IF((COUNTA(C3:D3)=1)+(I2=""),"",LOOKUP(10^10,$D$2:D3)&LOOKUP("ー",$C$2:C3)) 下へ、ずーっとコピー。。。
(注)入力シートの8桁の図番の入力は、数値の場合です。。 文字列の場合は、10^10 を "ー" にして下さい。。
★作業列 J列 J2セルへ =IF(I2="","",1)
J3セルへ =IF(I3="","",IF(COUNTA(C3:D3)<2,J2+1,1)) 下へ、ずーっとコピー。。。
★「部品名」「品番」「品番数量」「材質」 の抽出 E2セルへ =IF(COUNTIF(データ!$C:$C,$I2)<$J2,"",INDEX(データ!D:D,MATCH($I2,データ!$C:$C,0)+$J2-1))
右(H列まで)と下へコピー。。。
ご参考にどうぞ。。。
。。。Ms.Rin〜♪♪
Ms.Rin〜♪♪様、わかりにくかったようで、すみません。 でも・・・まさしく、こんな表です!(^^)! すばらしいです! 実際に本番(?)のファイルに入力するのが、 月曜日になりそうなので、しばらく時間をください。 貴重なお時間をいただきありがとうございました。 あと、最初に関数を教えていただいたのに、例題が品祖で Ms.Rin〜♪♪様の時間が勿体なかったですね。すみません。 とりいそぎ、お礼をと思いメールしました。
(uchi)
一回限りの抽出ならこんなのも? [[20080704141202]]『ある条件を含む行を別シートにまとめたい』(あい)
あい様 ありがとうございます。 取り急ぎお礼まで・・・ (uchi)
>あい様
リンク先の質問者のHNです。 お礼は名無しさんへ?? (とおりすがり)
とおりすがり様
そうですね。名無しさんへですね。 早とちりしています。ありがとうございました。 (uchi)
あい様のログを教えていただきありがとうございます。 お礼が遅くなり申し訳ありませんでした。 今回は一回限りの検索ではないのですが、検索関数は 今後の参考にしますね。 ありがとうございました。 (uchi)
Ms.Rin〜♪♪様 おはようございます。途中経過です。 Ms.Rin〜♪♪様の参考データ、エクセルで作ってみて試してみました。 バッチリです。まだまだ本番ではないのですが、嬉しくってお知らせ したくなって・・・(^_^;) ありがとうございます。今から本番のほう、作成します。 (uchi)
Ms.Rin〜♪♪様へ・・・ こんにちは。 本番のほうも、無事成功しましたのでお知らせいたします。 何かわからないことが発生しましたら、またご教示ください。 この度はお世話になり、ありがとうございました。 理想通りのものができ、感激しています。
ご協力いただいた、皆様へ・・・ 最初に参考資料を教えていただいた、名無し様 BY様 とおりすがり様 (あい)様のログを教えて下さった名無し様 この度はMs.Rin〜♪♪様の関数にて無事完成することができました。 皆様にもご協力いただき、ありがとうございました。 今後の仕事に活用していきたいと思います。 また色々と教えてください。
皆様に感謝です<(_ _)> (uchi)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.