Агрегирование и дезагрегация степени 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 различным идентификаторам или строкам и X различным возможным ответам в каждом поле, я пытаюсь определить, какой ответ на какой идентификатор и какая категория документов находится.

Я думал о двух разных конструкциях стола.

Двухколонный дизайн:

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

Так что мы просто узнаем, посмотрев на число в столбце документов, каковы проблемы с различными документами за период. В схеме с двумя столбцами ошибки будут:

Двухколонный дизайн:

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

И затем, когда я пытаюсь запустить отчет о различных проблемах с оформлением документов, все, что мне нужно сделать, это иметь функцию поиска, которая подсчитывает, сколько экземпляров числа 2 в столбце документов 1, и находит соответствующий идентификатор с помощью Это. Затем я передал бы эту информацию своему коллеге и начальнику, и тогда они, в свою очередь, узнали бы, что есть проблема с этим листом бумаги для этого человека; но они не знали бы конкретно, в чем проблема, и должны были бы полагаться на непосредственное знание самих книг.

Проблема с этим дизайном состоит в том, что он неявно требует, чтобы люди сверились с моим коллегой, который управляет книгами, чтобы выяснить, в чем проблема с документами, и весь смысл моего участия в упражнении состоит в том, чтобы помочь ей с ее работой. и использовать возможности компьютеров, чтобы помочь ей с ее задачей. Таким образом, второй дизайн, похоже, не использует весь потенциал компьютерных технологий для решения задач.

Поэтому, помимо поставленного ранее вопроса, я полностью приветствую любые вопросы, замечания или указания по этому вопросу. Если у вас есть альтернативный дизайн стола, я тоже приветствую это.

Я заранее прошу прощения, если этот пост нарушил какие-либо политики стекопотока из-за того, что он не является прямым, я постарался сделать его как можно более прямым.

1 ответ

Чтобы ответить на ваш вопрос о "дезагрегации" 257 (то есть, по сути, найти его двоичное представление), вы, вероятно, захотите использовать побитовые операции: http://www.excely.com/excel-vba/bit-operations.shtml. Тем не менее, ваша вторая идея кажется намного лучше, поскольку она позволяет вам видеть данные более явно. В идеале, однако, ваш процесс, вероятно, будет еще лучше и проще в обслуживании, если вы перейдете к чему-то более сложному, чем Excel, например, к использованию скрипта Python и файла CSV (или даже базы данных, но это может потребовать дополнительных технических знаний и обслуживания).).

Другие вопросы по тегам