[[20090609094454]] 『社名が同じなら前のロット番号の続きを自動入力』(CBC) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『社名が同じなら前のロット番号の続きを自動入力』(CBC)

A社のロット番号の範囲は761〜800で800の次は761、762の繰替えしです。

他に、B社(ロット番号の範囲は701〜710)

C社(ロット番号の範囲は721〜725)

D社(ロット番号の範囲は726〜730)

E社(ロット番号の範囲は711〜720)

A社のみを例にとりますと

A列は日付

B列は社名(入力規則からリスト選択)

C列はロット番号

         A          B          C

 1      5/1    A社        761

 2      5/1         A社    762

 3      5/1         B社    701

 4      5/2        A社     763

社名が同じなら前のC列のロット番号の続きを自動入力させたいのですが。

宜しくお願いします。


 各社のロット番号の対応表をF:Hに作成。
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]
[1]	5月1日	A社	761			社名	開始	終了
[2]	5月1日	A社	762			A社	761	800
[3]	5月1日	B社	701			B社	701	710
[4]	5月2日	A社	763			C社	721	725
[5]						D社	726	730
[6]						E社	711	720
 C1セルに
=IF(A1="","",VLOOKUP(B1,$F$2:$H$6,2,FALSE))
 C2セルに
=IF(A2="","",IF(OR(COUNTIF(B$1:B1,B2)=0,MAX(INDEX((B$1:B1=B2)*C$1:C1,))=VLOOKUP(B2,$F$2:$H$6,3,FALSE)-1),
VLOOKUP(B2,$F$2:$H$6,2,FALSE),MAX(INDEX((B$1:B1=B2)*C$1:C1,))+1))
 ↑2行で一つの式です。

 (HANA)

HANAさん、返事ありがとうございます。

やってみたのですが、

ロット番号の数字は順次入るのですが

例えば、A社の場合、

799の次が761になってしまい

ずうっと761のままなのです、

799の次が800でその次が761、762、763

範囲の繰り返しなのです。

よろしくお願いします。

(CBC)


 あらら、失礼しました。

 I2セルに
=H2-G2+1
 C1セルに(今度は1行目から同じ式です。)
=IF(A1="","",IF(MOD(COUNTIF(B$1:B1,B1),VLOOKUP(B1,$F$2:$I$6,4,FALSE))=0,VLOOKUP(B1,$F$2:$I$6,3,FALSE),
VLOOKUP(B1,$F$2:$I$6,2,FALSE)+MOD(COUNTIF(B$1:B1,B1)-1,VLOOKUP(B1,$F$2:$I$6,4,FALSE))))
 でどうでしょう?

 (HANA)
 

HANAさん出来ました、

この「#N/A」表示を消すにはどうしたらよいのでしょうか?


同じ日付に下記の表のように

761が入っている場合、

[2] [3] [4]

のどれかに入っている場合、

761を[1]に表示し 続けて762、763〜

	[A]	[B]	[C]	
[1]	5月25日	A社	798			
[2]	5月25日	A社	799			
[3]	5月25日	A社	800			
[4]	5月25日	A社	761			
[5]						
[6]			

	[A]	[B]	[C]	
[1]	5月25日	A社	761			
[2]	5月25日	A社	762			
[3]	5月25日	A社	763			
[4]	5月25日	A社	764			
[5]						
[6]			

にしたいのですが、

別のシ−ト

からバッスイ

=IF(A347="","",IF(AND(A346<>A347,MATCH(A347,A347:A357)+H346>800),761,IF(H346=800,761,H346+1)))

この関数で対応しています。

この関数を利用できませんか?

利用するなら

どのように組入れればよいのでしょうか?

またまた質問なんですが(現場の方から)

A社とB社には2つあり

A社とA2社

B社とB2社

があり同じロット番号が入ります

A社が763ならA2社は763

B社が703ならA2社は703

になります。

よろしくお願いします。

(CBC)


 >この「#N/A」表示を消すにはどうしたらよいのでしょうか? 
 どこでそのエラーが出ますか?
 一覧(F列)にない社名があるのではないかと思いますが。。。

 追加のご質問に関しては
 他の方のレスをお待ちください。

 (HANA)

>B社が703ならA2社は703

タイプミスをしてしまいました。

B社が703ならB2社は703

HANAさん返事ありがとうございます。

>どこでそのエラーが出ますか?

A列に日付を入れた時点でC列に表示されます。

>一覧(F列)にない社名があるのではないかと思いますが。。。

C列の関数のセルをクリックして範囲を調べましたが、

枠内に入っています。

よろしくお願いします。

(CBC)


HANAさん

条件付き書式で条件式を

 =iserror(C列) にして、書式でフォント色を背景色の白にしてみました。

エラーは消えましたが

どこに問題があるのでしょうか?

(CBC)


 COUNTIF関数を使用して、確認してみて下さい。
=COUNTIF(F列の範囲,B1)としてフィルドラッグ。

 #N/Aに成る行は、COUNTIF関数の戻り値が「0」に成っていませんか?

 もしかして
 「日付は先に入力して、社名は未入力の状態」
 って事ですかね?

 でしたら、数式の初っ端の
=IF(A1="","",
 を
=IF(B1="","",
 に変更でしょうか・・・?

 (HANA)

HANAさん返事ありがとうございます。

>「日付は先に入力して、社名は未入力の状態」

その通りです。

=IF(B1="","",

変更で解決しました。

>追加のご質問に関しては

 他の方のレスをお待ちください。

了解です。

新規に投稿した方が、

よいですかね?

ここまで、

HANAさん

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

(CBC)


 そうですね、レスが付かないようであれば
 (と言うか、レスも付きそうに無いので)
 新規で質問なさるのが宜しいかもしれません。

 その際は、記事内にこちらへのリンクと
 投稿後新記事へのリンクをこちらに
 と、相互にリンクを貼っておいて頂ければと思います。

 因みに、文頭に半角スペースを入れると
 空行を入れなくても改行出来る様になります。
_←ここに半角スペース。

 (HANA)

HANAさん、

色々お手数かけ、
助言たすかりました。

少し間を置いてから
新規投稿してみます。

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

(CBC)


_←ここに半角スペース。
 HANAさんが仰った通りに書くと

 色々お手数かけ、
 助言たすかりました。
 少し間を置いてから新規投稿してみます。
 ありがとうございました。
 (CBC) 
 って文字が小さくなりますよ^^(dack)

 dackさん
どうもありがとうございます。

(CBC)


 追加のご質問に関して
 >A社とB社には2つあり 
 >同じロット番号が入ります
 って言うのはよく分からないので
 サンプルデータを載せておかれるのが宜しいかと思います。

 それにしても、いつまでも計算を続けるわけには行かないので
 途中で過去のデータを消す様な状況に成りそうに思いますが
 そう言った事はないのですかね・・・?

 例えば、一月分ずつ処理をしていくから、処理行数はそんなに多くならない
 とか・・・

 処理をする段階で有ったデータに
 最初の番号から振られていけばよい
 とか・・・なんですかね?

 なんだかイメージがよく分からないんですよね。

 (HANA)

 HANAさん気にかけてくれてありがとうございます。

 現在使用してるエクセルシ−トからの直貼りです(少し直していますが)

 こんなで、サンプルシ−トで分かるかなと

 心配です。

   09年  4月度	           A        Lot,No=7761〜7800					
			B         Lot,No=7701〜7710					
			C        Lot,No=7721〜7725					
			D        Lot,No=7726〜7730					
			E        Lot,No=7711〜7720    					

 充填日	曜日 充填担当者	出荷先	               Lot No				
 4月1日	水	伊	A	9	4	01	7	761
 4月1日	水	藤	C,1	9	4	01	7	725
 4月1日	水	藤	C,2	9	4	01	7	725
 4月1日	水	伊	D	9	4	01	7	729
 4月1日	水	藤	E,1	9	4	01	7	711
 4月1日	水	藤	E,2	9	4	01	7	711
 4月2日	木	伊	A	9	4	02	7	762
 4月2日	木	伊	A	9	4	02	7	763
 4月2日	木	伊	A	9	4	02	7	764
 4月2日	木	伊	A	9	4	02	7	765
 4月2日	木	伊	C,1	9	4	02	7	726
 4月2日	木	伊	C,2	9	4	02	7	726
 4月2日	木	伊	E,1	9	4	02	7	712
 4月3日	金	藤	A	9	4	03	7	766
 4月3日	金	藤	A	9	4	03	7	767
 4月3日	金	伊	A	9	4	03	7	768
 4月3日	金	伊	A	9	4	03	7	770
 4月3日	金	伊	A	9	4	03	7	771
 4月3日	金	伊	D	9	4	03	7	730
 4月3日	金	伊	A	9	4	03	7	769
 4月6日	月	伊	A	9	4	06	7	772
 4月6日	月	伊	A	9	4	06	7	773
 4月6日	月	伊	C,1	9	4	06	7	722
 4月6日	月	伊	C,2	9	4	06	7	722
 4月6日	月	藤	E,1	9	4	06	7	713
 4月6日	月	藤	E,2	9	4	06	7	713
 4月7日	火	伊	A	9	4	07	7	774
 4月7日	火	白	A	9	4	07	7	775
 4月7日	火	藤	B,1	9	4	07	7	706
 4月8日	水	伊	A	9	4	08	7	776
 4月8日	水	伊	A	9	4	08	7	777
 4月8日	水	伊	A	9	4	08	7	778

 (CBC)


 気になった点だけ質問させて下さい。

 1.実際も出荷先は5社でしょうか?

 2.
 「09年  4月度」と書いてあると言うことは
 一月ごとにナンバリングして行くのでしょうか?

 3.
 4/1の、C,1 は、最初に出てくるのにいきなり「725」に成っていますが
 先月を引き継いでいる のですか?

 4.
 ○,2のみがカウントアップするような事が有りますか?

 5.
 4/2 C,1 の「726」は、間違っているだけですよね・・・?

 6.
 出荷先とロット番号の対応表のセル番地
 データの開始行
 日付、出荷先が入っている列
 Lot番号を表示させる列
 この表の最終列
 は?

 (HANA)

 こんな感じにしてみました。
 J列以降が作業列に成ります。
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]	[J]	[K]	[L]	[M]	[N]	[O]
[1]	09年	4月度								A	761	800			
[2]										B	701	710			
[3]										C	721	725			
[4]										D	726	730			
[5]										E	711	720			
[6]											A	B	C	D	E
[7]	充填日	曜日	担当者	出荷先			Lot	No			800	705	724	730	720
[8]	4月1日	水	伊	A	9	4	1	7	761	A	761	705	724	730	720
[9]	4月1日	水	藤	C,1	9	4	1	7	725	C	761	705	725	730	720
[10]	4月1日	水	藤	C,2	9	4	1	7	725		761	705	725	730	720
[11]	4月1日	水	伊	D	9	4	1	7	726	D	761	705	725	726	720
[12]	4月1日	水	藤	E,1	9	4	1	7	711	E	761	705	725	726	711
[13]	4月1日	水	藤	E,2	9	4	1	7	711		761	705	725	726	711
[14]	4月2日	木	伊	A	9	4	2	7	762	A	762	705	725	726	711
[15]	4月2日	木	伊	A	9	4	2	7	763	A	763	705	725	726	711
[16]	4月2日	木	伊	A	9	4	2	7	764	A	764	705	725	726	711
[17]	4月2日	木	伊	A	9	4	2	7	765	A	765	705	725	726	711
[18]	4月2日	木	伊	C,1	9	4	2	7	721	C	765	705	721	726	711
[19]	4月2日	木	伊	C,2	9	4	2	7	721		765	705	721	726	711
[20]	4月2日	木	伊	E,1	9	4	2	7	712	E	765	705	721	726	712
 J1:L5が、出荷先と対応ロット番号
 K6:O6に、出荷先
 K7:O7に、前回の最後のロット番号を入力
 (番号の続きから表示します)

 I8に
=INDEX(K8:O8,MATCH(LEFT(D8,FIND(",",D8&",")-1),K$6:O$6))
 J8に
=IF(RIGHT(D8,1)="2","",LEFT(D8,FIND(",",D8&",")-1))
 K8に
=IF($J8=K$6,IF((SUMPRODUCT(($A$8:$A17=$A8)*($J$8:$J17=$J8))+K7)>VLOOKUP(K$6,$J$1:$L$5,3,FALSE),VLOOKUP(K$6,$J$1:$L$5,2,FALSE),K7+1),K7)

 K8の式の範囲を10セル分取っています。
 同じ日付のデータが10行以上有る場合は、範囲を広げておいて下さい。

 (HANA)

質問の回答です。

1.実際も出荷先は5社でしょうか?

    荷先は5社です。

2.「09年  4月度」と書いてあると言うことは
 一月ごとにナンバリングして行くのでしょうか?

一月ごとのブックにしてあります。ナンバリングはして行っています。

手入力です。

3. 4/1の、C,1 は、最初に出てくるのにいきなり「725」に成っていますが
 先月を引き継いでいる のですか?

はい、その通りです。

4. ○,2のみがカウントアップするような事が有りますか?

ないです。○,2ある場合は、必ず○,1の次にきます。

5. 4/2 C,1 の「726」は、間違っているだけですよね・・・?

721の間違いですね。

6.
 出荷先とロット番号の対応表のセル番地
 データの開始行
 日付、出荷先が入っている列
 Lot番号を表示させる列
 この表の最終列
 は?

X列以降を考えています。

データの開始行 8行目

日付列 A列

出荷先列 H列

ロット番号 N列

最終列はV列です「備考覧」

質問の回答を作成している間に

考えてくれていたんですね。

ありがとうございます。

確認させていただきます。

(CBC)


HANAさん、すごいですね。

尊敬します。

どんな頭の構造をしていらしゃるのか

覗いてみたくなりました。

正式にシ−トを作ってみます。

その月の最終ロットNoを自動で

出せたら、リンクで入力しなくてもよいのですが
無理ですよね。

ここまで

わがまま言わせてもらい

ご協力

感謝しています。

ありがとうございます。

(CBC)


 上手く行きそうですか、良かったです。

 うっかりしていましたが、I8セルの数式は
=IF(D8="","",INDEX(K8:O8,MATCH(LEFT(D8,FIND(",",D8&",")-1),K$6:O$6)))
 にしておいて頂けると、多めにコピーしたときに
 エラーが出なくなると思います。

 作業列(K列以降)の最終行の数字が最終ロット番号です。
 一月のデータ量よりも確実に多く数式をコピーしておいて
 その最終行のセルを次の月の先頭へ リンクしておけば良いかもしれません。

 ただ、前月の最終ロットが確定した段階で
 次の月の先頭へは【値貼り付け】をしておくのが
 安全なのではないかと思います。

 過去のデータを全て引き継いでいると
 過去のデータが不本意に変わって仕舞った時に
 連動して全て変わってしまいますので。

 ・・・過去のデータから変更したい
 なんて要望が有るなら別ですが。

 >その月の最終ロットNoを自動で出せたら、
 >リンクで入力しなくてもよいのですが
 これって、
 「毎回ロットNoを探して次の月へリンクさせるのが面倒」
 って事じゃないんですかね・・・?
 「作業列とは言え多めにコピーなんてイヤ」
 って事なんですかね・・・?

 でしたら、数式で求める方法も有ると思いますが。
=LOOKUP(9^9,K8:K100)
 こんな感じで。

 (HANA)

HANAさん、結局

最後までめんどう見ていただき

ありがとうございます。

「#N/A」エラ−修正は、自分で

頑張ってみようと思っていたのですが

返事文内に

 >=IF(D8="","",INDEX(K8:O8,MATCH(LEFT(D8,FIND(",",D8&",")-1),K$6:O$6)))

頂き(本音は安堵)ありがたく思っています。

 >作業列(K列以降)の最終行の数字が最終ロット番号です。

 > =LOOKUP(9^9,K8:K100)

どちらを使うかは、作り始めてから

検討したいと思っています。

 >追加のご質問に関しては
 他の方のレスをお待ちください。

と言われた時は、新規に投稿しても

回答が得られない気がしていました。

実のところ半分あきらめ状態で。

ここまで、出来たのはHANAさんの

おかげだと自負しています。

仕事の合間に

質問コ−ナ−を拝見させていただいていますが、

HANAさんの回答がよく出てきますね。

色んな質問に対しての柔軟な知識があるから、

出来るのだと思います。

時には厳しい回答もされていますが、

それは質問者に対して

レベルUPを図ってもらいたい気持ちが

込められてるからだと、

私は解釈してます。

又、投稿させていただく

機会があるかと思いますが、

その時もよろしくお願いします。

今回の質問件に対して、

最後の最後まで

返答いただき

感謝を込めて

HANAさん

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

(CBC)


 せっかくお褒めの言葉を頂いているのに
 追記が必要なのも体裁が悪いのですが・・・

 >=LOOKUP(9^9,K8:K100)
 この数式は「常にこの式で最終ロットを得られる」
 というわけではなく、K8:K100の範囲の最後のセルに
 入力されている値を返すものです。

 もしも、その月の最後のデータが100行を超える場合は
 最終ロットを返すとは限りません。
 数式の、参照範囲を変更する必要があります。

 そうならないために、この数式でも
 「見こして余裕をもって範囲設定」が必要になります。
 ですので、
 見こして余裕をもって数式をコピーしておいて、その最終行を
 リンクさせておく 方法と大して変わりありません。

 どうせ多めに数式をコピーしておくのなら
 数式の範囲を増やさなければならなくなった場合の事を考えると
 前者の方法をとっておいたほうが良いのではないかと思います。

 (HANA)

HANAさん、私の率直な意見ですよ。

HANAさんからアドバイスをいただいた関数式を

検証(調べたりして)しながら頭に頭に叩き込んでいます。

HANAさんに聞けば、たぶん関数式の説明をしてくれると思いますが、

私の骨となり肉となるためには、まず

自分なりに教えていただいた、関数式を把握する事だと思っています。

どうしても、理解できない場合は

教えを問うと思います。

 >=LOOKUP(9^9,K8:K100)
 一月ごとのブックにするので
 シ−トの行は250ぐらいみとけば
 対応できます。
 =LOOKUP(9^9,K8:K250)
 こちらの方が、
 リンクさせ
 一年分作っておけばと思っています。

HANAさん、重ね重ね
ありがとうございました。

一つだけ質問させてください。

 >9^9

 9の9乗を使われた意味を教えていただけないでしょうか?

 お願いします。

 (CBC) 


 LOOKUP(9^9・・・ に関しては
 こちらの過去ログが分かりやすいと思います。
[[20081118103520]]『最新の情報の更新について』(るう)

 9^9にした部分は、K8:K100に入力される値よりも
 大きい値で有れば良いので、
 K列では800より大きい値になるなら、何でも良いと思います。

 SUMPRODUCT関数のリンクだけ貼っておきます。
 他意は有りませんので 不要でしたら、読み流して下さい。
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040824.html
 エクセル・マイスターより「countifで複数条件」

 (HANA)

 るうさん、HANAさん
 ありがとうございます。

 SUMPRODUCT関数のリンクの件も
 解りやすい内容で記載されてて
 私の頭脳でも理解できます。

 HANAさん、るうさん
 Excel 関数
 ビジュアルマスタ−(知っている本かな)を読みながら
 精進に励んでいます。

 色々とありがとうございます。

 (CBC) 


 いよいよ
 作り始めたのですが
 社名をアルファベット(A、B、C、D、E)では
 うまく出来たのですが、
 漢字の社名にすると
 うまくいかないのです
 なぜでしょうか?

 よろしくお願いします。

 (CBC) 


 >I8セル =IF(D8="","",INDEX(K8:O8,MATCH(LEFT(D8,FIND(",",D8&",")-1),K$6:O$6)))
      =IF(D8="","",INDEX(K8:O8,MATCH(LEFT(D8,FIND(",",D8&",")-1),K$6:O$6,0)))
                                                                             ↑
                                      ここに「,0」が無いセイでは?
 (半平太) 2009/06/16 17:12

 >ここに「,0」が無いセイでは?
 あっっ、本当ですね。。。

 有難う御座います、全く忘れていました。

 CBCさん、済みませんが
 半平太さんが書いて下さっている様に
 変更を御願いします。

 (HANA)

 半平太さん、HANAさん
 ありがとうございます。
 >=IF(D8="","",INDEX(K8:O8,MATCH(LEFT(D8,FIND(",",D8&",")-1),K$6:O$6,0)))
 了解です。

「,0」に関して調べたのですが

 解りませんでした。
「,0」なくても、正確に表示する場合もありました。
 なぜ「,0」が必要なのでしょうか?

 また、作成途中で
 問題が発覚しました。

 A社だけなのですが
 A社には
 納入先は同じで
 社内に入ると

 A社1号
 A社2号
 A社3号
 3っの社号があります。
 ロット範囲は同じでロット番号は続きます。

	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]	[J]	[K]	[L]	[M]	[N]	[O]
 [1]	充填日	曜日	担当者	出荷先			                        Lot	No
 [2]	4月1日	水	伊	A1号	9	4	1	7	761	
 [3]	4月1日	水	藤	C,1	9	4	1	7	725	
 [4]	4月1日	水	藤	C,2	9	4	1	7	725	
 [5]	4月1日	水	伊	D	9	4	1	7	726	
 [6]	4月2日	水	藤	A2号	9	4	1	7	762	
 [7]	 4月3日	水	  藤	   A3号	    9	    4	      1	       7        763

 私なりに行を増やしたり、試行錯誤しましたが
 力がおよびません。

 よろしくお願いします。

 (CBC) 


 ちょっと時間がないので
 >問題が発覚しました。
 に関してのみですが。。。

 J1:L5(社名とロット範囲の対応表がある範囲)
 K6:O6(作業列の社名が入っているセル範囲)
 I8(実際にロット番号を表示するセルの先頭)
 にあたる実際のセル番地(I8セルから見たもの)
 を教えてください。

 また、現在使用している数式も
 のせて載せていただければと思います。

 (HANA)

 HANAさん
 お忙しいところ申し訳ありません。
J1:L5(社名とロット範囲の対応表がある範囲)
 P1:R5です。
K6:O6(作業列の社名が入っているセル範囲)
 P7:T7です。
I8(実際にロット番号を表示するセルの先頭)
 N9です。

 N9には
 =IF(H9="","",INDEX(P9:T9,MATCH(LEFT(H9,FIND(",",H9&",")-1),P$7:T$7,0)))

 09には
 =IF(RIGHT(H9,1)="2","",LEFT(H9,FIND(",",H9&",")-1))

 P9には
 =IF($O9=P$7,IF((SUMPRODUCT(($A$9:$A18=$A9)*($O$9:$O18=$O9))+P8)>VLOOKUP   (P$7,$P$1:$R$5,3,FALSE),VLOOKUP(P$7,$P$1:$R$5,2,FALSE),P8+1),P8)

 まだセル行を増やしたぐらいです。

 H9以降から社名をリストで選択しています。

 どこか空きセルで
 H9のリストで
 A社1号を選択したらA社です。
 A社2号を選択したらA社です
 A社3号を選択したらA社です。

 に出来れば、
 P1にはA社、そして
 P7にはA社にすれば
 できるのではないでしょうか?

 私の浅はかな案ですが
 少しでも参考になればと思いまして。。。

 よろしくお願いします。

 (CBC) 


 遅くなりました、済みません。
 妥協案として。。。。

 社名とロット範囲の対応表がある範囲(P1:R5)は
 P列を基準に 昇順に並べ変えて下さい。

 もしも社名が変更になったら、再度並べ替えが必要です。
 その際、作業列の社名が入っているセル範囲(P7:T7)も
 忘れず並べ替えが必要なので、ここは数式を入れる事にしておきます。
 P7に
=INDEX($P$1:$P$5,COLUMN(A1))
 として、T7までフィルドラッグして下さい。

 その他の数式は
 N9
=IF(H9="","",INDEX(P9:T9,MATCH(H9,P$7:T$7,1)))
 O9【変更無し】
=IF(RIGHT(H9,1)="2","",LEFT(H9,FIND(",",H9&",")-1))
 P9
=IF(LEFT($O9,LEN(P$7))=P$7,IF((SUMPRODUCT((LEFT($A$9:$A16,LEN(P$7))=LEFT($A9,LEN(P$7)))*($O$9:$O16=$O9))+P8)>
VLOOKUP(P$7,$P$1:$R$5,3,TRUE),VLOOKUP(P$7,$P$1:$R$5,2,TRUE),P8+1),P8)

 これでご希望の結果が得られるか、ご確認をお願いします。

 上手く行かない様でしたら、ご提案の
 >A社1号を選択したらA社です。
 >A社2号を選択したらA社です
 の案を使わせて頂く事にします。

 その場合は
 >H9以降から社名をリストで選択しています。
 これは、入力規則が設定して有るのだと思いますが
 リストの元の値をセル参照しているなら
 そのセル番地を教えて下さい。

 念のためにお伺いしますが
 一日の日付の重複は7件以下でしょうか?
 それとも、この部分は参照範囲が実際は
 もっとたくさんとって有りますか?

 (HANA)


 済みません、難しく考えていたみたいです。

 A社1号,A社2号,A社3号 等が
 A社しか無いなら

 N9
=IF(H9="","",INDEX(P9:T9,MATCH(IF(LEFT(H9,LEN(P$7))=P$7,P$7,LEFT(H9,FIND(",",H9&",")-1)),P$7:T$7,0)))
 O9
=IF(RIGHT(H9,1)="2","",IF(RIGHT(H9,1)="1",LEFT(H9,FIND(",",H9&",")-1),IF(LEFT(H9,LEN(P$7))=P$7,P$7,H9)))
 P9・・・変更無し

 社名とロット範囲の対応表がある範囲(P1:R5)の
 並べ替えは不要です。

 但し、社名の変更が有った場合に双方変更の必要が有るのは同じですので
  >P7に
  >=INDEX($P$1:$P$5,COLUMN(A1))
  >として、T7までフィルドラッグ
 は、やって於いても良いと思います。

 ちなみに、O列はこの様な対応に成る予定です。
	[H]	・・・・	[O]
[8]	出荷先		
[9]	A1号		A
[10]	C,1		C
[11]	C,2		
[12]	D		D
[13]	A2号		A
[14]	A3号		A
 社名のみ表示で、
 2で終わっている場合は社名の表示無し。

 (HANA)

 HANAさん、忙しいところ
 ありがとうございました。

 >済みません、難しく考えていたみたいです。
 こちらで確認させていただきました。

	[H]	・・・・	[O]
 [8]	出荷先		
 [9]	A1号		A
 [10]	C,1		C
 [11]	C,2		
 [12]	D		D
 [13]	A2号		A
 [14]	A3号		A

 になるのですが、

 ロット番号が、
 799の次に800を表示しません。
 また
 同じ日付内に
 ロット最後の数字と次にロット初めの数字が含まれた場合、
 ロット初めの数字が最初にきません。

 A社以外は、
 全てOKなのですが。。

 よろしくお願いします。

 (CBC) 


 えっと・・・
	[A]	・・・・	[H]	・・・・	[N]	[O]	[P]	[Q]	[R]	[S]	[T]
[1]							A	761	800		
[2]							B	701	710		
[3]							C	721	725		
[4]							D	726	730		
[5]							E	711	720		
[6]											
[7]							A	B	C	D	E
[8]	充填日	・・・・	出荷先	・・・・			799 ★	705	724	730	720
[9]	4月1日	・・・・	A1号	・・・・	761	A	761	705	724	730	720
[10]	4月1日	・・・・	A2号	・・・・	762	A	762	705	724	730	720
[11]	4月1日	・・・・	C,1	・・・・	725	C	762	705	725	730	720
[12]	4月1日	・・・・	C,2	・・・・	725		762	705	725	730	720
[13]	4月1日	・・・・	E,1	・・・・	711	E	762	705	725	730	711
[14]	4月1日	・・・・	E,2	・・・・	711		762	705	725	730	711
[15]	4月2日	・・・・	A1号	・・・・	763	A	763	705	725	730	711
[16]	4月2日	・・・・	A2号	・・・・	764	A	764	705	725	730	711
[17]	4月2日	・・・・	A3号	・・・・	765	A	765	705	725	730	711

 P8を「799」にしたときに
 A9,A10が 761,762 に成ると思いますが。。。

 でもって、H10を「D」にしたら
	[A]	・・・・	[H]	・・・・	[N]	[O]	[P]	[Q]	[R]	[S]	[T]
[1]							A	761	800		
 :							 :	 :	 :		
[7]							A	B	C	D	E
[8]	充填日	・・・・	出荷先	・・・・			799	705	724	730	720
[9]	4月1日	・・・・	A1号	・・・・	800	A	800	705	724	730	720
[10]	4月1日	・・・・	D    ★	・・・・	726	D	800	705	724	726	720
[11]	4月1日	・・・・	C,1	・・・・	725	C	800	705	725	726	720
[12]	4月1日	・・・・	C,2	・・・・	725		800	705	725	726	720
[13]	4月1日	・・・・	E,1	・・・・	711	E	800	705	725	726	711
[14]	4月1日	・・・・	E,2	・・・・	711		800	705	725	726	711
[15]	4月2日	・・・・	A1号	・・・・	761	A	761	705	725	726	711
[16]	4月2日	・・・・	A2号	・・・・	762	A	762	705	725	726	711
[17]	4月2日	・・・・	A3号	・・・・	763	A	763	705	725	726	711

 ですよね・・・?

 P9
=IF($O9=P$7,IF((SUMPRODUCT(($A$9:$A18=$A9)*($O$9:$O18=$O9))+P8)>VLOOKUP(P$7,$P$1:$R$5,3,FALSE),
VLOOKUP(P$7,$P$1:$R$5,2,FALSE),P8+1),P8)

 (HANA)

 HANAさん、申し訳ありません。

 私の勘違いで、
 動作確認
 全てOKです。

 これで
 完成したようなものです。

 HANAが作ってくれた式を調べながら
 なぜ、どうしてって感じで
 作っていきます。

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

 最後に、
 前文での
 >なぜ「,0」が必要なのでしょうか?

 教えていただけませんか?

 HANAさんの余裕な時間でよいですから…

 (CBC) 


 出来ましたか。良かったです。

 「,0」はMATCH関数のヘルプを参照します。
 数式が色々組合わさっていますが、該当部分は
 MATCH(検査値,検査範囲,照合の型)
          ここの部分/~~~~~~~~~

 照合の型
  -1、0、1 の数値のいずれかを指定します。
  照合の型には、検査範囲の中で検査値を探す方法を指定します。・・・・・・・・・・(イ)

  照合の型を省略すると、1 を指定したと見なされます。・・・・・・・・・・・・・・(ロ) 

  照合の型に 1 を指定すると、検査値以下の最大の値が検索されます。
  このとき検査範囲のデータは、昇順に並べ替えておく必要があります。・・・・・・・(ハ)

  照合の型に 0 を指定すると、検査値に一致する値のみが検索の対象となります。
  このとき検査範囲を並べ替えておく必要はありません。・・・・・・・・・・・・・・(ニ)

 ヘルプからの引用時並びを変えましたが、内容は同じです。

 まず、最初この部分(イ)は省略されていました。
 ですから「1」と書いたのと同じ動きに成ります。(ロ)
 (ハ)の【検査値以下の最大の値】というのは、例えば
         ↓【昇順に並べ替えておく必要があります。】ので、昇順です。
	[A]	[B]
[1]	A	D
[2]	C	2
[3]	E	
[4]	G	
 B2に「=MATCH(B1,A1:A4)」の式を入れると
 検査値「D」を探してC-E(2行目-3行目)の間なので
 小さい方の最大の値「2」を返します。
   以下の最大 ってのは「AじゃなくてC」って事です。

 もしも、昇順に成っていなかった場合 正しい結果を返しません。
 良い条件がそろった場合(必要な部分で昇順に成っている 等)では
 希望する結果が得られることも有ると思います。
 (「上手く行く所もある」ってのはこのパターンだったのではないかと思います。)

 (ニ)【照合の型に 0 を指定すると、検査値に一致する値のみが検索の対象】
 上のサンプルで、B2を「=MATCH(B1,A1:A4,0)」にすると
 今回は「D」が無いのでエラーになりますが・・・・
 (ハ)との大きな違いは【並べ替えておく必要はありません。】です。

 VLOOKUP関数を使用する際、
VLOOKUP(検索値,範囲,列番号,検索の型)
              ここでも、/~~~~~~~~~同じ様な指定をします。
 VLOOKUP関数の場合、
  「FALSE」と書いたら完全一致
  「TRUE」或いは省略 すると、検査値以下の最大の値

 今回の検索を考えた時に、
  P$7:T$7が昇順に並んでいない
 ので「,0」が必要になります。

 >妥協案として。。。。
 として載せた物は
  昇順にしておき、,1 で検索
 を考えていました。
 例えば
	[A]	[B]	
[1]	A	A2号	
[2]	B	1	←=MATCH(B1,A1:A4,1)
[3]	C		
[4]	D		
 B1に「A2号」とすると 検査値以下の最大の値の結果「1」を得ることが出来ます。
  ≪注≫	=MATCH(B1,A1:A4,1) と =MATCH(B1,A1:A4) は、同じです。

 日頃から、省略せずに書く癖を付けておかないといけませんね。。。
 (例え ,1 だから省略出来たとしても。
  今回は、照合の型 の存在をすっかり忘れていました。済みません。)

 (HANA)

 HANAさん、
 詳しく説明していただき
 ありがとうございました。

 私が収集している「エクセル関係資料」ファイルに
 経過ともどもファイリングしときます。

 私は
 今回の問題に対して
 HANAさんへ
 お礼を形であらわす事はできませんけど
 HANAさんのレベルまで到達し、
 追い越す事が、この板での
 恩返しだと思っています。
「,0」は?
 なんて聞いているようでは
 まだまだ
 ひな
 白鳥になって
 大空を飛び回れたら
 HANAさんを超えたかな。。。。

 今回は
 お疲れ様でした。

 マジで  ←修正
 本当に
 ありがとうございました。

 (CBC) 


 数式に不具合が有ったので、こちらで修正しました。
[[20090702145218]]『社名が同じなら前のロット番号の続きを自動入力』』(CBC) 

 たぶん、他の方が参考にすることも無いとは思いますが念のため。。。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.