Формат времени для беременных (недели:дни) - как реализовать?

Автор Dr_Lecter, 24 октября 2014, 14:16

0 Пользователи и 1 гость просматривают эту тему.

Dr_Lecter

Суть проблемы:

Я врач, сейчас пытаюсь на основе Calc сделать шаблоны для работы с беременными с автоматическим вычислением сроков.
Для этого нужно представить числа в ячейках в формате недели:дни, т.е.
7 = 1 нед 0 дней
10 = 1 нед 3 дня
132 = 18 нед 6 дней

Условие - чтобы можно было вводить данные в ячейку в этом формате, при этом не важно чем отделять недели от дней при вводе.  

Просто таблицы для расчетов в медицине (центильные) изначально идут в этом формате. Я во вложении положил одну страничку из справочника. Таблиц таких -ну наверное листов на 35 - 40 наберется. И вводить все таблицы в Calc предварительно умножая на 7 и прибавляя дни это проблема.

Спасибо заранее!

JohnSUN

Какие-то вычисления с такими ячейками должны выполнятся? Если нет, если это только для красивой печати, то задача сводится к сложному форматированию - выдрать из ячейки одно или два кое-как введенных числа и аккуратно перезаписать, вставив между ними "w" и добавив "d" в конце.
Такого преобразования хватило бы даже для поиска нужных значений в тех таблицах листов на 35-40.
А вот если потом нужно с этими днями-неделями реальные вычисления проводить (например, вычислить интервал прихода мамочки на осмотр в днях или построить график роста плода за весь период наблюдения) - тогда нужно крепко подумать, в каком виде эти дни все-таки хранить...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Dr_Lecter

Нет нужно вычислять.
Т.е. я ввожу к примеру 7,4 - в ячейке появляется 7 нед 4 дн (или 7н4д). При этом фактически при переводе в формат Standard там должно быть число 53 (7*7+4), т.е. ввели мы именно 53.
Условно нужно реализовать отображение числа в 8-ричную системе исчисления.
Также при переводе обычной ячейки с числом 280 в новый формат там дожно появится 40 нед 0 дн

JohnSUN

Цитата: Dr_Lecter от 24 октября 2014, 18:32
Нет нужно вычислять.
Что именно нужно вычислять? В смысле - какие действия? Только сложение-вычитание и сравнение с какими-то диапазонами дат в таком же формате? Или что-то более сложное?
Цитата: Dr_Lecter от 24 октября 2014, 18:32
Т.е. я ввожу к примеру 7,4 - в ячейке появляется 7 нед 4 дн (или 7н4д).
Можно, конечно, и так. Но, как по мне, проще ввести 74 без всяких запятых. Просто всегда помнить, что одну цифру дня ввести нужно обязательно. Даже если она ноль. То есть доктор диктует "Двенадцать недель (ровно)", а акушерка тычет в кнопки 120, а не 12 (а то ведь получит 1w2d и не заметит). Кстати, о каких сроках обычно идёт речь? Есть какой-то минимальный срок, ниже которого вводить что-то нельзя? С максимумом понятно - "280 плюс-минус неизвестность"... А минимум?
Цитата: Dr_Lecter от 24 октября 2014, 18:32
Условно нужно реализовать отображение числа в 8-ричную системе исчисления.
Ну, это очень условно... Там получается "десятично-семеричная" - недели-то могут быть и с семеркой, и с восьмеркой, и с девяткой...
Цитата: Dr_Lecter от 24 октября 2014, 18:32
Также при переводе обычной ячейки с числом 280 в новый формат там дожно появится 40 нед 0 дн
Ну, преобразование уже введенных дней - это особый разговор. Сначала нужно все-таки разобраться со способом хранения значения: то ли это будет "хитроотформатированное хитрое число", то ли строка фиксированного формата. Много таких ячеек в одном шаблоне будет?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: Dr_Lecter от 24 октября 2014, 13:16сейчас пытаюсь на основе Calc сделать шаблоны для работы с беременными с автоматическим вычислением сроков.
Для этого нужно представить числа в ячейках в формате недели:дни
Сделайте шаблон, в котором данные будут в формате 2w3d или2w3 и укажите в какие ячейки вводить данные, а в каких получить результат (в каком формате и по каким формулам), остальное сделаем мы. Так будет намного проще.

Dr_Lecter

Цитата: JohnSUN от 24 октября 2014, 19:29
Что именно нужно вычислять? В смысле - какие действия? Только сложение-вычитание и сравнение с какими-то диапазонами дат в таком же формате? Или что-то более сложное?

Там более сложное - там регрессия (аппроксимация? - не знаю мат. анализ но вроде так называется), ну еще кубические и квадратные уравнения.

Цитата: rami от 24 октября 2014, 20:03
Сделайте шаблон, в котором данные будут в формате 2w3d или2w3 и укажите в какие ячейки вводить данные, а в каких получить результат (в каком формате и по каким формулам), остальное сделаем мы. Так будет намного проще.

Спасибо большое всем за участие в моей проблеме!
Для всех - давайте чтобы не решать вопросы по одному я покажу шаблон, исходник, результат и попытаюсь объяснить что я хочу сделать, а вы всем обществом подскажите - может есть другой путь или это вообще нормально реализовать нельзя.
Беру небольшой тайм-аут до завтра для подготовки материала.

celler

Завтра прошло, Dr_Lecter, не получилось сделать шаблон? Мне не понятно, записи должны сами что ли преобразовываться в правильную форму?
А может всё разнести в два столбца - один для ввода данных, а во втором будут с помощью формул сами формироваться нужные значения для дальнейшей обработки. Только желательно, чтобы разнообразие всех форм ввода данных было ограничено. Например недели и дни разделять пробелом - тогда и вводить быстрее и формулы будут проще.
Вот набросал несколько возможных алгоритмов.

rami

Цитата: celler от 28 октября 2014, 18:37Завтра прошло, Dr_Lecter
У врачей "завтра" наступает не после полуночи, а после дежурств. Подождём.
Цитата: celler от 28 октября 2014, 18:37Мне не понятно, записи должны сами что ли преобразовываться в правильную форму?
А может всё разнести в два столбца - один для ввода данных, а во втором будут с помощью формул сами формироваться нужные значения для дальнейшей обработки. Только желательно, чтобы разнообразие всех форм ввода данных было ограничено. Например недели и дни разделять пробелом - тогда и вводить быстрее и формулы будут проще.
Dr_Lecter уже писал об этом:
Цитата: Dr_Lecter от 24 октября 2014, 18:59Там более сложное - там регрессия (аппроксимация? - не знаю мат. анализ но вроде так называется), ну еще кубические и квадратные уравнения.
Цитата: Dr_Lecter от 24 октября 2014, 12:16Просто таблицы для расчетов в медицине (центильные) изначально идут в этом формате. Я во вложении положил одну страничку из справочника. Таблиц таких -ну наверное листов на 35 - 40 наберется. И вводить все таблицы в Calc предварительно умножая на 7 и прибавляя дни это проблема.
Данные из таблиц нужно копировать, а не переписывать, а формулы составлять с учётом оригинального формата(например, 27w2d)
В приложенном документе в зелёной рамке оригинальная таблица, а в красных рамках мои формулы(предпочтительны формулы из рамки справа).

JohnSUN

Цитата: rami от 28 октября 2014, 23:06
предпочтительны формулы из рамки справа
Если формулу из D1:D7 совсем немного усложнить, то и обратное преобразование (для формата из зелёной и правой красной рамки) работает нормально
=LEFT(Q2;LEN(Q2)-3)*7+LEFT(RIGHT(Q2;2);1)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: JohnSUN от 29 октября 2014, 08:23Если формулу из D1:D7 совсем немного усложнить
Что-то не заметил я ни какого усложнения :beer:
Если доктор срочно не прийдёт, прийдётся открывать собственную клинику

JohnSUN

Ну да, согласен по обоим пунктам.
1. Не "усложнение", а поправка на один символ, связанная с наличием буквы "d" в записи срока
2. Клиника широчайшего профиля - всё, связанное с репродуктивной медициной. "Сроки я уже считать умею..." (с) "Джентельмены удачи", переврано по памяти  ;D
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: JohnSUN от 29 октября 2014, 10:261. Не "усложнение", а поправка на один символ, связанная с наличием буквы "d" в записи срока
Таблицу в зелёной рамке я скопировал из PDF файла ничего в ней не меняя (только добавил зелёную рамку), там после буквы "d" есть пробел, который в текстовых функциях учитывается как символ.
Самый главный вопрос: какой формат мы примем в качестве рабочего? Есть варианты:
1. "_w_"      это самый лёгкий для ручного ввода формат, для него подходят формулы из левой красной рамки
2. "_w_d"    твоя формула учитывает этот формат
3. "_w_d "   это формат исходных данных, формулы в столбце "P" это учитывают, а если в формулу =QUOTIENT(P2;7)&"w"&MOD(P2;7)&"d" из столбца "Q" добавить пробел после "d":=QUOTIENT(P2;7)&"w"&MOD(P2;7)&"d " то получится исходный формат (как в зелёной рамке). Офису всё равно, визуально не заметно, а если не будет массовой ручной забивки данных, то никто и не заметит.
И мы снова возвращаемся к главному вопросу нашей эпохи ;D: какой формат мы примем в качестве рабочего ???

JohnSUN

Как по мне, то второй вариант лучше всего.
Во-первых, данные из PDF'ов и сканов так или иначе желательно перетащить в нормальный ODF. Ну, чтобы VLOOKUP'ы на них натравливать и другие умные функции. И уже при перетаскивании позаботиться, чтобы лишних пробелов нигде не маячило, но формат "_w_d" был соблюдён.
Во-вторых, есть у меня такая подсознательная уверенность, что использоваться введенный срок будет именно для поиска, а вычисления и прочий мат. анализ будет строиться вокруг найденных и извлеченных значений.
Ну, и в третьих, выдрать количество дней из такой текстовой строки мы уже при случае сумеем...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне