Я пытаюсь собрать большую базу данных в Excel из нескольких отдельных источников данных.
Моя общая цель - создать большую таблицу со списком идентификаторов белков с кучей различной информации, по одной строке для комбинаций белков и лекарств.

Я сталкиваюсь с проблемами при использовании VLOOKUP для возврата нескольких препаратов с одним и тем же номером белка. Моя текущая формула такая:
=IFERROR(VLOOKUP(A469,drugbank_approved_target_uniprot.xlsx!$A$2:$E$7108,4),"No drug")

VLOOKUP по умолчанию возвращает только первый соответствующий препарат для данного идентификатора. Я хочу что-то похожее на следующее изображение:
Желаемый результат

В основном, я хочу 1 ряд для каждого совпадения белка с наркотиками. Сложность состоит в том, что существует переменное количество лекарств, соответствующих каждому белку - от нуля до 20 лекарств на белок.
Насколько я могу судить, нет способа заставить Excel вставлять несколько строк на основе переменной на основе результатов поиска. Есть ли способ сделать это с помощью функций в Excel, или мне нужно прибегнуть к сценариям VB? Я также включил снимок экрана с набором данных соответствия белков и лекарств. Идентификаторы Uniprot - это, по сути, первичный ключ, который я хочу сопоставить со всеми моими данными.

Исходный набор данных

1 ответ1

0

Я не думаю, что прямые формулы Excel могут сделать это самостоятельно. Для меня у вас есть 4 варианта

  1. Использовать VB скрипт
  2. Вручную создайте свой большой набор данных и используйте фильтрацию данных, которая уже применяется к вашим исходным данным, которые у вас уже есть
  3. Вручную создайте свой большой набор данных и используйте внешнюю программу, которую вы могли бы создать, используя циклы функций в PHP, ASP, Python или любом другом языке программирования, который вы знаете, который будет работать
  4. Используйте Microsoft Access, который, вероятно, проще, чем вариант 3, поскольку это программное обеспечение для выделенной базы данных.

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