1

Я работаю в небольшой больнице в Индии, у которой возникла следующая проблема: для специального лекарства у нас есть список с ДАТА, ИД, ДОЗА, ДЛИТЕЛЬНОСТЬ, СЛЕДУЮЩИЙ ВИЗИТ, который мы используем в качестве ежедневного рабочего списка (рабочая тетрадь 1), означает один ID (человек) может появляться в этом списке более одного раза.

В другой рабочей книге у нас есть "Основной файл" (рабочая книга 2) с каждым идентификатором только один раз, но шаблон (ДАТА, ПРОДОЛЖИТЕЛЬНОСТЬ, СЛЕДУЮЩИЙ ВИЗИТ) повторяется каждый раз, когда люди приходят снова (таким образом, ДАТА2, ДЛИТЕЛЬНОСТЬ2, СЛЕДУЮЩИЙ ВИЗИТ2)

Я ищу элегантный способ автоматического заполнения данных из моего ежедневного списка (рабочая тетрадь 1) в основной таблице (рабочая тетрадь 2). Поэтому я предполагаю, что мне понадобится некоторая функция IF + INDEX/Match + Array, чтобы найти идентификатор в рабочей книге 1, получить значения для DATE1, DURATION1, NEXT VISIT2 и заполнить рабочую книгу 2, а затем перейти вниз по списку в рабочей книге 1, найти в следующий раз, когда пациент пришел, получить данные и заполнить их снова в книге 2, но теперь в ДАТА2 ... и так далее.

Я добавляю две картинки, чтобы объяснить проблему.

Ежедневный лист:

Мастер лист:

2 ответа2

0
  1. Можно найти значения по формулам. Вам просто понадобятся заголовки для отображения чисел, например, 1 с форматом 0 « первого визита» и т.д.
  2. К сожалению, функции никогда не будут иметь дело с двумя вещами: потеря данных и переполнение. Представьте, что пациент приходит в восьмой раз, и он не отображается в вашей таблице, потому что вы только заполнили его до 7.

Функция, которую вы, вероятно, ищете

=SUMPRODUCT(1*(A3>$A$3:$A$8),1*(B3=$B$3:$B$8))+1

который должен быть добавлен в рабочую тетрадь один и сообщит вам номер данной встречи: первое: 1, второе: 2 и т. д. Еще одна проблема с этой формулой заключается в том, что не будет различать два числа с одинаковым значением. Если кто-то посетит вас дважды за один день (при условии, что вы не записываете часы), это будет считаться только одним.

0

Как описано в другом ответе, вы можете сделать это с формулой, но это может быть не самое лучшее / простое решение, я бы использовал один из следующих вариантов:

Сводная таблица:

Вероятно, самое простое и элегантное решение, если вы можете жить с его ограничениями:
- диапазон назначения не редактируется (может быть, даже положительный в вашем случае).
- вы можете использовать только значения чисел и даты в теле таблицы (только текст в вашем примере - это скорость, но вы можете установить собственный формат чисел, чтобы после номера отображалось "мг").
Приготовление:
- добавить новый столбец в вашей таблице - VisitSequence: =countifs(f:f,f3,b:b,"<="&b3) .
создать сводную таблицу. Метки столбца: ID; заголовки строк: VisitSequence; значения: дата, доза, длительность, следующее посещение (поскольку у вас есть только одна строка для каждой комбинации ID X с датой, вы можете использовать либо сумму, либо среднее значение).

VBA:

Требует гораздо больше работы, чем сводная, но она гораздо более гибкая.

MS Access:

Родной инструмент для отчета вам нужен. Это может потребовать некоторого обучения от вас, но это может быть лучшим долгосрочным решением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .