Excel (一般機能)

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

 
(Windows 8系全般 : Excel 2013)
製造業の生産日報と集計について
投稿日時: 22/06/17 22:44:18
投稿者: もものももはもも

製造業の日報について質問させて頂きます。
 
つい先日、生産日報をエクセル入力化にしました。
それを、加工製品の日ごとの月間集計リストにしたいと思っています。
 
現在の日報シート
   [A] [B] [C] [D] [E] [F]
[1]
[2] 設A  品1      〇〇個
[3] 設B 品5      〇〇個
[4]
・・・とこんな感じになっていて、
[B2]セルは、プルダウンリストで「品1、品2、品3・・・」となっています。
これを、別シートで
   [A] [B] [C] [D] [E] [F]
[1] 1日 2日  3日  4日  5日   6日 
[2] 設A  
[3] 品1  〇〇  〇〇
[4] 品2         〇〇
[5] 品3             〇〇  〇〇個
 
[6]設B
[7]品5  〇〇個
[8]品6      〇〇  〇〇
[9]
 
 
・・・こんな感じにしたいと思います。
 
どのようにすればいいか、ご教授お願いします。

回答
投稿日時: 22/06/18 06:58:21
投稿者: Mike

確認させてください。m(_._)m
1.「別シート」において、
 ̄ ̄1行目の
 ̄ ̄1日、2日、3日、…、
 ̄ ̄等に該当する日付は、「現在の日報シート」では何処に存在しますか?
 
2.「現在の日報シート」において、
 ̄ ̄1行目は空白行ですか?
 ̄ ̄日付がシート名になっていて、それは単に「1日」、「2日」、「3日」、…、ですか?
 ̄ ̄年、月は何処にもないのですか?
 ̄ ̄例えば、2022年6月5日のシート名は単に「5日」だけで、年、月の情報は何処にもないと?

回答
投稿日時: 22/06/18 09:24:23
投稿者: んなっと

●シート「1日」
 
   A  B  C
2 設A 品1 11
3 設B 品5 25
 
●シート「2日」
 
   A  B  C
2 設A 品3 23
3 設B 品4 24
 
●シート「3日」
 
   A  B  C
2 設A 品2 32
3 設B 品7 37
 
●シート「月間集計」
 
   A  B  C  D  E
1      1日 2日 3日
2 設A 品1  11     
3    品2       32
4    品3    23   
5 設B 品4    24   
6    品5  25     
7    品6        
8    品7       37
 
C2
=IFERROR(INDEX(INDIRECT("'"&C$1&"'!C:C"),MATCH(LOOKUP("ーー",$A$2:$A2)&"|"&$B2,INDIRECT("'"&C$1&"'!A1:A20")&"|"&INDIRECT("'"&C$1&"'!B1:B20"),0)),"")
下方向・↓右方向・→
 
 
※PowerQueryで"日"で終わるシートをまとめて、ピボット解除する方法もあります。
それならINDIRECTを使わなくても済みますが、手順が複雑。

投稿日時: 22/06/18 14:08:54
投稿者: もものももはもも

早い回答ありがとうございます。
 
言葉足らず、内容足らずですみません。
 
追記
「現在の日報シート」では、
セルA1に、=today()で、年月日ごと入れるようにしています。
 
現在、社の方針で紙の保管がメインのため、
「現在の日報シート」は当日作業分を入力→プリントアウト→原紙状態に戻して終了しています。
 
その状態で、月間集計をリストにしていくには、マクロ的なものの使用することになりますか??

回答
投稿日時: 22/06/18 15:28:12
投稿者: WinArrow
投稿者のウェブサイトに移動

>セルA1に、=today()
 
↑これ・・・当日の印刷だけの話なら、問題はないと思いますが、
日が変わると、「値」も変わってしまいますよ!
 
例えば、
2022年6月15日には、2022/6/15と表示されていますが、
翌日、このブックを開くと、2022/6/16で表示されます。
つまり、ブックを開いた日付に変わってしまいます。
TODAY関数を使ってはダメ・・・ということです。
手間を掛けずに入力するならば
ショートカットイー:[Ctrl]+[;]をお勧めします。

回答
投稿日時: 22/06/18 15:35:11
投稿者: WinArrow
投稿者のウェブサイトに移動

TODAY関数の件はさておき
1ヶ月分?のデータを集計するのですから、
どのような集計方法を使うにしろ、
対象期間分のデータを1つのシートに集約(統合)することからの話になります。
 
従って、データ1件毎に日付を持つには・・・・という観点で
デザインを考えてみてください。

回答
投稿日時: 22/06/19 07:00:05
投稿者: んなっと

引用:
つい先日、生産日報をエクセル入力化にしました。
 
現在、社の方針で紙の保管がメインのため、
「現在の日報シート」は当日作業分を入力→プリントアウト→原紙状態に戻して終了しています。

データを上書きしながら1枚の日報シートを使い回ししていくんですね。
それでいて月間集計リストには過去の日付のデータも残したいと。
生産日報の使い回しの仕様を変えるか、VBAを利用するしかないと思います。

回答
投稿日時: 22/06/19 10:33:29
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:

月間集計をリストにしていくには、マクロ的なものの使用することになりますか??

「入力用シート」とは別の「蓄積用シート」を用意する。
「蓄積用シート」には、日付の列を用意する
 
入力終了⇒「印刷」⇒「蓄積用シート」に転記
という手順を考えて
●「蓄積用シート」に転記
入力用シートのセルA1に「TODAY関数」を使っている場合、この処理は、必ず、当日中に実施すること。
転記後、データの修正があった場合は、「蓄積用シート」の内容を修正する・・という覚悟が必要
転記処理の中で、日付は「値」で複写します。(関数のまま複写はNGです)
 
 
 
「集計用シート」も必要
実績データが全く存在しない「日」も必要か?
1つの案(VBA使用しない)を紹介します。
ピボットテーブルを利用すると、
縦:部署・品目、横:日付のマトリクス表が作成できます。
※新しいシートも自動で作成できます。
 
 

投稿日時: 22/06/19 22:30:14
投稿者: もものももはもも

んなっと様
WinArrow様
何度も何度も、回答ありがとうございます。
 
恥の上塗りついでに、もう少し質問させて頂きます。
 
当日印刷なので問題ないかと、TODAY関数を使用していましたが、問題ありなのは理解しました。
 
皆様が提案の様に、毎日シートを増やして行きたいと思います。
それで、例えば
各日の日報シートに
A1に年 B1に月 C1に日
を入れるとして、
 
月間集計シート (んなっと様 引用させて頂きます)
   A  B  C  D  E
1      1日 2日 3日
2 設A 品1  11     
3    品2       32
4    品3    23   
5 設B 品4    24   
6    品5  25     
7    品6        
8    品7       37
 
C2セル以降には、どのような関数になりますか??
んなっと様の
=IFERROR(INDEX(INDIRECT("'"&C$1&"'!C:C"),MATCH(LOOKUP("ーー",$A$2:$A2)&"|"&$B2,INDIRECT("'"&C$1&"'!A1:A20")&"|"&INDIRECT("'"&C$1&"'!B1:B20"),0)),"")
下方向・↓右方向・→
でよろしいでしょうか??
 
また、後学のために各関数がどのように働いているか、ご教授頂けると幸いです。

回答
投稿日時: 22/06/19 22:59:31
投稿者: WinArrow
投稿者のウェブサイトに移動

横から失礼します。
 
んなっとさんの数式は、
シート名が日付になっているという前提で組み立てれれっています。
 
数式で対応する場合、
数式の中に、日別のシート名を指定することができなければ、
シート毎の日付セルが、1つでも3つでも関係ありません。
※んなっとさんの数式は、そこの日付は使っていないので・・・・
 
なお、日付は分解するよりは、1つのセルの方が扱いやすいと思いますよ。

回答
投稿日時: 22/06/20 23:40:17
投稿者: WinArrow
投稿者のウェブサイトに移動

数式を使う場合の懸念
 
INDIRECT関数は「揮発性関数」に分類されます。
(TODAY関数も揮発性関数です。)
 
揮発性関数ではない数式の場合、
その数式が参照しているセルの「値」が変更された場合だけ再計算が動きます。
揮発性関数が組み込まれていると、どこかのセルの値が変更されると、再計算が動きます。
つまり、再計算により処理速度が遅くなるということです。

投稿日時: 22/06/21 21:44:26
投稿者: もものももはもも

皆さん、ご回答ありがとうございまいた。
 
いろいろ情報頂けたので、自力でやってみます。
 
また質問させて頂くこともあると思うので、よろしくお願いいたします。