Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 00:32   #1
DJOV
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 5
По умолчанию Нестандартная сортировка

Итак, имеется таблица в которой сгруппированы данные (см. прикрепленный файл).

В составе таблицы имеется 10 основных столбцов, каждый из которых имеет в свою очередь 3 подстолбца. 1 подстолбец - йон, 2 подстолбец - интенсивность иона абсолютная, 3 подстолбец - интенсивность иона относительная.

Каждый из 10 столбцов с 1 по 10 - является условием получения данных по каждому из диапазонов ионов, представленных в подстолбце 1 каждого из 10 столбцов. Число значений в подстолбцах всегда одинаковое. То есть количество строк в подстолбцах всегда едино.

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

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

Постарался описать как можно проще. Возможно ли это сделать в excel и если да, то с чего бы начать и как именно представить данные. Все голову себе сломал для решения казалось бы достаточно простой задачки.
Вложения
Тип файла: rar EXCEL TEMPLATE.rar (17.0 Кб, 17 просмотров)
DJOV вне форума Ответить с цитированием
Старый 09.09.2009, 01:25   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Цитата:
То есть, хотелось бы получить сводную таблицу, в которой были бы указаны ионы, а далее в зависимости от условий указан диапазон значений, из которых в отдельную ячейку помещалось бы максимальное значение, присутствующее в данном диапазоне для данного иона.
По этому описанию мне не очень понятна структура этой сводной таблицы. Какие там должны быть колонки, может, пример на основе Вашего файла дадите - какие туда данные попадают?
motorway вне форума Ответить с цитированием
Старый 09.09.2009, 02:02   #3
DJOV
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 5
По умолчанию

Окей. Например, если посмотреть на первые три столбца, то в них есть ион 391, в других столбцах его нет.

Для иона 391 максимальная интенсивность будет составлять 4 636 086
Что соответствует условию + c ESI sid=-10,00 Full ms2 408,000@cid-10,00 [60,000-450,000]

И так необходимо сделать для всех присутствующих ионов в данной таблице
DJOV вне форума Ответить с цитированием
Старый 09.09.2009, 02:33   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Правильно ли я понял, что нужно сделать просто таблицу из 2 колонок - в первой все возможные m/z, а во второй соотв. им максимальные интенсивности? И больше данных в таблице не д.б.? Или д.б. еще соотв. данные из ячейки сверху типа + c ESI sid=-10,00 Full ms2 408,000@cid-10,00 [60,000-450,000] - в третьей колонке?
motorway вне форума Ответить с цитированием
Старый 10.09.2009, 01:02   #5
DJOV
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 5
По умолчанию

В конечном счете макрос или условие должно выполнять следующие действия:

1 - выбирать все возможные m/z из таблицы общей
2 - подставлять вышеуказанным m/z (см. п. 1) максимальное значение интенсивности.
3 - к каждой паре (m/z = максимальная интенсивность) добавлять соответствующие параметры, при которых получены эти самые максимальные значение - то есть CID - 5.00 или CID - 25.00.

Второй вариант описанный вами правильный

Последний раз редактировалось DJOV; 10.09.2009 в 01:07.
DJOV вне форума Ответить с цитированием
Старый 10.09.2009, 01:17   #6
DJOV
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 5
По умолчанию

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

То есть, например, значение m/z 313,21 и значение 313,55 - программа (даже если они округлены) - воспринимает как разные значения, но подразумевается что они одинаковые.

Конечно же можно избежать такой неразберихи, если представлять данные в таблице как они отображаются - в настройках Excel указать - "данные как на листе" .
DJOV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нестандартная задача в паскале vadek13 Помощь студентам 5 22.05.2009 22:49
Нестандартная авторизация krot98 Работа с сетью в Delphi 7 09.12.2008 22:09
Нестандартная работа с COM портом Alex_C Win Api 2 22.07.2008 02:34
Нестандартная форма Лубышев Общие вопросы Delphi 7 28.01.2008 20:33