Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2007)
0以外のデーターのみ別シートに表示
投稿日時: 18/09/28 01:06:17
投稿者: satoshi3

いつもお世話になっております。
 
Sheet1で、商品コード、製造ライン、商品名、B数、B単価、毎日(31日まで)の製造数を記載しています。
 
Sheet2に、製造ライン毎に、製造する商品、B数(製造数)を毎日(31日まで)リスト(表示)をしたいです。
※製造ラインは7、商品数は約60個です。
 1つだけラインで商品数が30個あり、その他は10個未満になります。
 
計画した商品、製造数の目安をリストにしたいと考えております。
ライン毎に行は揃えれることが理想になります。
 
恐らく横に長くなるので、7日(1週間ごと)、10日間ぐらいで、
違うシート(Sheet3以降)に出すようにすると思います。
 
ご教示お願い致します。
 
【Sheet1】

A	B	C	 D	 E	 F	 G	 H
					 10月1日10月2日10月3日
コード	ライン	品名	 B単位	単価	 月	 火	 水
660779	P	肉じゃが 35	451	 6		 4
661246	P	筑前煮	 41	532		 3	
662840	P	若竹煮	 135	490	 3	 2	 3
662879	大	焼鳥たれ 90	200	 1		 2
662880	大	鰻のタレ 105	200		 2	
662881	大	焼肉のたれ81	200		 1	 2
600896	R	うどんだし20	169	 2	 1	
660669	R	そばだし 21	266	 3		
661475	R	あんかけ 57	204		 3	
662720	R	冷麺つゆ 57	204	 1	 4	 5
662906	R	そばつゆ 35	475	 2	 2	 2
630331	T	牛丼	 43	201	 1		 1
662938	T	豚生姜	 44	185		 2	
660780	T	カレー	 42	107	 1		 1
662860	玉子	出し巻玉子18	308	 12	 10	 10

 
【Sheet2】
A	B	C	D	E	F	G	H	I	J	K
		10月1日						10月2日		
ライン	コード	品名	数量			ライン	コード	品名	数量	
P	660779	肉じゃが6	B		P	661246	筑前煮	3	B
P	662840	若竹煮	3	B		P	662840	若竹煮	2	B
										
										
										
大	662879	焼鳥たれ1	B		大	662880	鰻のタレ2	B
						大	662881	焼肉のたれ1	B
										
									
R	600896	うどんだし2	B		R	600896	うどんだし1	B
R	660669	そばだし3	B		R	661475	あんかけ3	B
R	662720	冷麺つゆ1	B		R	662720	冷麺つゆ4	B
R	662906	そばつゆ2	B		R	662906	そばつゆ2	B
										
											
T	630331	牛丼	1	B		T	662938	豚生姜	2	B
T	660780	カレー	1	B						

回答
投稿日時: 18/09/28 09:31:22
投稿者: Suzu

こんにちは。
 
私ならオートフィルターで対象を抽出して、コピペしていくでしょうか。
 
少なくもと
元データの形から 一般機能の 関数のみでどうこう出来る
という範囲は超えているでしょう。

回答
投稿日時: 18/09/28 11:23:48
投稿者: WinArrow
投稿者のウェブサイトに移動

質問の内容に対応するには、
[Sheet1]Sheet1のデザインを変更し、リスト形式にすることをお勧めします。
F列を製造日
G列を製造数
のようにしたリスト形式にします。(当然行数は増えます)
 
ピボットテーブルを使用すれば、掲示のSheet1にすることができます。
 
質問タイトルのある「0以外のデータ」の判断がいまいちわかりませんが、
オートフィルタ、もしくは、ピボットテーブルで対応できると思います。
 

回答
投稿日時: 18/09/28 11:58:49
投稿者: WinArrow
投稿者のウェブサイトに移動

前レスで
>質問タイトルのある「0以外のデータ」の判断がいまいちわかりません
と書いていましたが、ようやく理解できました。
質問時の表では、「製造数覧」が空白以外ということですね・・・
 
前レスのリスト形式に変更すれば、
そのようなことを考えなくても済みます。

回答
投稿日時: 18/09/28 13:51:29
投稿者: Suzu

こんにちは。
 
WinArrowさん
 
 
ピボットの場合

ライン	品名	10月1日	10月2日	10月3日
P	若竹煮	3	2	2
	筑前煮		3	
	肉じゃが	6		4
R	あんかけ		3	
	うどんだし	2	1	
	そばだし	3		
	そばつゆ	2	2	2
	冷麺つゆ	1	4	5
T	カレー	1		1
	牛丼	1		1
	豚生姜		2	
玉子	出し巻玉子	12	10	10
大	鰻のタレ		2	
	焼鳥たれ	1		2
	焼肉のたれ		1	2

こんなのはできますが、
質問者さんの希望は、10/2の「筑前煮」を表示したくないのです。
 
あくまでも、リストであって、クロスの表ではないのですよね。
なので、ピボットテーブルのみでは対応不可と考えますがいかがでしょう。

回答
投稿日時: 18/09/28 15:02:00
投稿者: WinArrow
投稿者のウェブサイトに移動

Suzu さんの引用:

質問者さんの希望は、10/2の「筑前煮」を表示したくないのです。
 
あくまでも、リストであって、クロスの表ではないのですよね。
なので、ピボットテーブルのみでは対応不可と考えますがいかがでしょう。

その通りです。
失礼しました。
オートフィルタを使って
というのがよいかもしれません。

回答
投稿日時: 18/09/28 19:35:00
投稿者: んなっと

●Sheet1
 
     A    B      C   D   E   F   G   H
 1                      10/1 10/2 10/3
 2 コード ライン    品名 B単位 単価  月  火  水
 3 660779    P  肉じゃが   35  451   6      4
 4 661246    P   筑前煮   41  532      3   
 5 662840    P   若竹煮  135  490   3   2   3
 6 662879   大  焼鳥たれ   90  200   1      2
 7 662880   大  鰻のタレ  105  200      2   
 8 662881   大 焼肉のたれ   81  200      1   2
 9 600896    R うどんだし   20  169   2   1   
10 660669    R  そばだし   21  266   3      
11 661475    R  あんかけ   57  204      3   
12 662720    R  冷麺つゆ   57  204   1   4   5
13 662906    R  そばつゆ   35  475   2   2   2
14 630331    T    牛丼   43  201   1      1
15 662938    T   豚生姜   44  185      2   
16 660780    T   カレー   42  107   1      1
17 662860    T 出し巻玉子   18  308  12  10  10
 
●Sheet2 面倒なので、数量も文字列にしてしまいました。
 
    A    B    C      D   E F
 1  10/1                   
 2     ライン コード    品名 数量  
 3   3    P 660779  肉じゃが   6  
 4   5    P 662840   若竹煮   3  
 5 1E+05                   
 6   6   大 662879  焼鳥たれ   1  
 7 1E+05                   
 8 1E+05                   
 9   9    R 600896 うどんだし   2  
10   10    R 660669  そばだし   3  
11   12    R 662720  冷麺つゆ   1  
12   13    R 662906  そばつゆ   2  
13 1E+05                   
14   14    T 630331    牛丼   1  
15   16    T 660780   カレー   1  
16   17    T 662860 出し巻玉子  12  
17 1E+05                   
 
A3
=SMALL(INDEX(ROW($3:$200)+((INDEX(Sheet1!$3:$200,,MATCH(A$1,Sheet1!$1:$1,0))=0)+(Sheet1!$B$3:$B$200<>Sheet1!$B3))*10^5,),COUNTIF(Sheet1!$B$3:$B3,Sheet1!$B3))
下方向・↓
B3
=INDEX(Sheet1!$A:$ZZ,LOOKUP(10^9,$A$1:A$1,$A3:A3),IF(B$2="数量",MATCH(LOOKUP(10^9,$A$1:A$1),Sheet1!$1:$1,0),MATCH(B$2,Sheet1!$2:$2,0)))&""
右方向・→(E列まで) 下方向・↓
 
 
A1:F列一番下までを選択して、右方向にオートフィル
 
    A    B    C      D   E F   G    H    I      J   K
 1  10/1                    10/2                 
 2     ライン コード    品名 数量      ライン コード    品名 数量
 3   3    P 660779  肉じゃが   6     4    P 661246   筑前煮   3
 4   5    P 662840   若竹煮   3     5    P 662840   若竹煮   2
 5 1E+05                    1E+05                 
 6   6   大 662879  焼鳥たれ   1     7   大 662880  鰻のタレ   2
 7 1E+05                      8   大 662881 焼肉のたれ   1
 8 1E+05                    1E+05                 
 9   9    R 600896 うどんだし   2     9    R 600896 うどんだし   1
10   10    R 660669  そばだし   3    11    R 661475  あんかけ   3
11   12    R 662720  冷麺つゆ   1    12    R 662720  冷麺つゆ   4
12   13    R 662906  そばつゆ   2    13    R 662906  そばつゆ   2
13 1E+05                    1E+05                 
14   14    T 630331    牛丼   1    15    T 662938   豚生姜   2
15   16    T 660780   カレー   1    17    T 662860 出し巻玉子  10
16   17    T 662860 出し巻玉子  12   1E+05                 
17 1E+05                    1E+05 

投稿日時: 18/09/28 22:19:11
投稿者: satoshi3

WinArrowさん
Suzuさん
んなっとさん
 
皆さんありがとうございます。
 
オートフィルターが最善かと思ってました。
マクロじゃないとできないんだろうと思ってました。
 
ただただ唖然としてますが
んなっとさんの関数で試用してみます。
 
ありがとうございました。