Страницы: 1
RSS
Подсчет количества разных символов по позициям
 
С Рождеством Христовым! Эксперты эксель, помогите пожалуйста написать пользовательскую функцию.
Проблема такая: есть столбик на листе 1, в ячейках которого находятся аминокислотные последовательности. Они очень близкие по сиквенсу, но тем не менее, S-белок короновируса мутирует и сиквенсы постепенно меняются. На листе 2 есть некая матрица, ячейки которой хочется заполнить с помощью пользовательской функции: в столбиках номер позиции, а в стороках 20 аминокислот и 1 делеция "-". Собственно нужно посчитать по каждой позиции встречаемость разных аминокислот.
Сейчас данную задачу решаю с помощью формул: сначало разбиваю функцией ПСТР сиквенс по буквам, а потом уже заполняю таблицу СЧЕТЕСЛИ по столбикам. Всё отлично работает, но лист с разбивкой по буквам имеет размер уже в сотню мегабайт, что значительно утяжеляет рабочую книгу.
Изменено: dim284 - 07.01.2021 15:05:54
 
Здравствуйте! Не очень понятно - Вам нужно посчитать сколько, например, букв А в ячейке А1 и записать в первом столбце, в ячейке А2 и записать во второй столбец и т.д ?
 
Настя_Nastya, добрый вечер! Похоже тут не все так просто
Цитата
dim284 написал:
S-белок короновируса мутирует и сиквенсы постепенно меняются
Возможно следующая тема от dim284, будет о нахождении последовательностей, причем с различными количествами элементов... Возможно я и не прав, но ТС почему-то не показывает, как должен выглядеть результат, только две семерки, а как он их получил только ему известно... :) В общем, срочно начинаем изучать микробиологию, тогда быстрее поймем задачу :)
 
Настя, есть лист 1 и лист 2. На листе 1 что считать, на листе 2 куда выгружать результат подсчета. На листе 1 в ячейках А1-А7 семь последовательностей, грубо говоря 7 слов. Каждое слово начинается с буквы "M", значит на листе 2 в столбце "С" под названием "1", напротив буквы "M" должна быть цифра 7 и т.д. В некоторых столбиках будут разные цифры, например в столбике 69 должно получиться 5 букв "H" и 2 делеции "-".
 
в ячейку С1 Лист2 формулу МАССИВА
=СУММ(ЕСЛИ(ПСТР(Лист1!$A$1:$A$7;C$1;1)=Лист2!$B2;1;0))
 
Настя - это гениально! Я даже не думал что формулой так можно. Супер, спасибо большое!
Игорь - я честно пытаюсь написать как можно более понятней и пример более простой в понимании, но получается то, что получается. Вы уж меня простите. Я ведь мокрый биолог, а не биоинформатик. Но Вы все сделаете из меня человека, спасибо :)
 
Добрый день!

Вариант макросом
 
Настя_Nastya, вариант без массивного ввода:
=СУММПРОИЗВ(--(ПСТР(Лист1!$A$1:$A$7;C$1;1)=$B2))
 
dim284, и Вы меня простите :) Если бы не было #3 то не было бы и #4 (пояснения из которого должны были быть в #1), и тема зависла бы надолго, если не насовсем. С Рождеством и с наступающим старым новым годом!
Изменено: _Igor_61 - 07.01.2021 17:00:12
 
Ой сколько вкусных плюшек привалило: за безмассивную формулу спасибо, макрос KoronaCount тоже сгодиться, хотя формулами на мой взгляд удобнее. Ещё раз всем спасибо! До новых встреч :)
Страницы: 1
Наверх