2

私はいくつかのデータを持っており、仕事の事務処理に関するさまざまな問題を追跡しようとしています。データは次のようになります。

ID      |     Paperwork 1    |    Paperwork 2    |    Paperwork 3
1       |     No Signature   |     No Signature  |      Missing Date
2       |     Completed      |      No Signature |     Missing Signature
3       |      Missing Date  |     Completed     |       Completed
4       |      None          |    Completed      |       Missing Signature

事務処理の N カテゴリ、および M の異なる ID または行、および各フィールドでの X の異なる応答について、どの ID に対するどの応答と、どのカテゴリの事務処理がどこにあるかを判断しようとしています。

私は 2 つの異なるテーブルのデザインを考えました。

2 カラム設計:

ID    |    Paperwork
1     |      1
2     |      4
3     |      10
4     |     257

対応するコードベースで

0 = No Paperwork 1
1 = No Paperwork 2
2 = No Paperwork 3
4 = Paperwork 1 Submitted Successfully
8 = Paperwork 2 Submitted Successfully
16 = Paperwork 3 Submitted Successfully
32 = Paperwork 1 Missing Date
64 = Paperwork 2 Missing Date
128 = Paperwork 3 Missing Date
256 = Paperwork 1 Missing Signature
512 = Paperwork 2 Missing Signature
1024 = Paperwork 3 Missing Signature

そのため、事務処理の列にある番号を見るだけで、その期間のさまざまな事務処理の問題が何であるかがわかります。2 列の設計では、エラーは次のようになります。

2 カラム設計:

ID    |    Paperwork
1     |     No Paperwork 2
2     |     Paperwork 1 Submitted Successfully, No Paperwork 2
3     |     Paperwork 2 Submitted Successfully, No Paperwork 3
4     |     Paperwork 1 Missing Signature, No Paperwork 2

この設計の問題点は次のとおりです。1) 書類の列に数字を入力するのは簡単です。誰かがその期間のすべての書類に目を通し、各部分のさまざまな問題や問題の欠如に注意する必要があります。事務処理。それらの問題が見つかると、各問題に番号が割り当てられ、それらの番号が合計されて、その特定の期間のすべての問題をカプセル化した全体の番号が求められます。ただし、これらの特定の数値からテキスト出力を作成する方法がわかりません。可能性のあるすべてのテキスト出力のリストをブルートフォースしたくありません。署名が欠けている完成した書類を手に入れることはできないので、いくらか絞り込むことができますが、それはあまりにも多くの可能性のように聞こえます 私の質問は次のとおりです。257 という数字を取得した場合、257 が実際には 256+1 であるとどのように判断できますか? 必要がありますか、それともこれを不必要に複雑にしていますか?

または、私が考えた別の方法は、すべてのエラーをよりバイナリの変数に含めることでした。したがって、上記のエラー コードではなく、次のようになります。

多くの列

0 = No Paperwork 
1 = Paperwork Completed
2 = There is an error with Paperwork 1
3 = There is an error with Paperwork 2
4 = There is an error with Paperwork 3

したがって、テーブルは次のようになります。

ID      |     Paperwork 1    |    Paperwork 2    |    Paperwork 3
1       |     2              |     3             |      4
2       |     1              |     3             |      4  
3       |     2              |     1             |      1
4       |     0              |     1             |      4

そして、事務処理に関するさまざまな問題についてレポートを実行しようとしているときに、事務処理 1 列にある番号 2 のインスタンスの数をカウントするルックアップ関数を用意し、対応する ID を見つけるだけです。それ。次に、この情報を同僚と上司に提供すると、彼らは、この人物の書類に問題があることを知ることになります。しかし、彼らは問題が何であるかを具体的に知らないため、本自体の直接の知識に頼る必要があります。

この設計の問題点は、帳簿を管理している私の同僚に確認して、事務処理の問題が何であるかを確認することを人々に暗黙のうちに要求することであり、演習への私の関与の全体的なポイントは、彼女の仕事を助けることです。そして、コンピューターの力を使って彼女の仕事を手伝うこと。したがって、2 番目の設計では、タスクを支援するためにコンピュータ テクノロジの可能性を最大限に活用していないように見えます。

したがって、前に提起された質問を超えて、この問題に関する質問、ポイント、または方向性を完全に歓迎します. 別のテーブル デザインがあれば、それも歓迎します。

この投稿が直接的ではないというスタックオーバーフローのポリシーに違反している場合は、事前にお詫び申し上げます。できる限り直接的なものにしようとしました。

4

1 に答える 1

0

「分解」257 (つまり、基本的にそのバイナリ表現を見つけること) に関する質問に答えるには、おそらくビット単位の操作を使用することをお勧めします: http://www.excely.com/excel-vba/bit-operations.shtml。ただし、データをより明確に見ることができるため、2 番目のアイデアははるかに優れているようです。ただし、理想的には、python スクリプトや csv ファイル (またはデータベースなど) を使用するなど、Excel よりも高度なものに移行すると、プロセスがさらに良くなり、保守が容易になる可能性がありますが、それにはより多くの技術的知識と保守が必要になる場合があります)。

于 2016-06-14T19:22:33.270 に答える