2015-05-17 6 views
2

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

Я думал о двух разных табличных проектах.

Две колонки Конструкция:

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

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

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

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

+0

В чем вопрос? Почему эта метка «математика»? –

+0

Вопрос выделен жирным шрифтом. Это математика, потому что я знаю, что она связана с числами, степенями 2, объединяющими степени 2 вместе, чтобы сформировать большее число, и рассекая числа, чтобы найти их составляющие части. Так, например, я пытаюсь найти схему, которая показывает, что: 257 = 256 + 1. В то время как 257 также = 200 + 57, я не забочусь об этом факте для этого упражнения. Я пытаюсь использовать полномочия вычислений, чтобы легко агрегировать и дезагрегировать данные. – user3097236

+0

Так что мне интересно, могу ли я сделать это в vba. Я использовал vba, но никогда в Microsoft не преуспел - в основном, чтобы узнать, что такое 17, я бы нашел наивысшую мощность 2, которая меньше 17 (16), запомните это, вычтите 16 из 17, затем повторите. Следующая итерация цикла вызовет 1. Таким образом, я мог бы разумно увидеть строку, сгенерированную с вводом 17, будет выводить 16,1. – user3097236

ответ

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^