Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 След.
"Сортировка от А до Я" не "работает", Точнее работает только по какому-то определенному количеству первых символов в ячейке
 
Отличный макрос получился, спасибо МатросНаЗебре!
Предложение переименовать название темы на следующее:
"Сортировка строк длиной более 255 символов", или почему "Сортировка от А до Я" не сортирует диапозон (не работает).
Вторая часть нужна потому, что когда возникает проблема, люди в интеренете ищут её решение именно по названию проблемы, а то что "строки длиной более 255 символов" ещё посчитать надо. Боюсь многие до этого не дойдут.
"Сортировка от А до Я" не "работает", Точнее работает только по какому-то определенному количеству первых символов в ячейке
 
Друзья, в целом, все замечательно, все три варианта работают, спасибо! Но, на практике получается так, что таблица как правило состоит из нескольких столбцов и столбец, по которому нужно отсортировать значения, может быть любой по счету (второй, пятый, седьмой и т.д.). А можно сделать так, чтобы после выделения диапозона (из нескольких столбцов) макрос спрашивал по какому столбцу сортировать?
Был не прав, сорри! Функцией СОРТ во втором аргументе указывается номер столбца по которому можно сортировать диапозон. Правда придется новый лист создавать, чтобы большую таблицу заново воссоздать на новом месте.
Изменено: dim284 - 17.04.2024 10:21:26
ПРОСМОТРХ выдает #Н/Д
 
evgeniygeo спасибо большое! Чудеса, работает. Вот что ФИЛЬТР животворящий делает!
"Сортировка от А до Я" не "работает", Точнее работает только по какому-то определенному количеству первых символов в ячейке
 
Даже так! Интересненько, а можно попросить кого-нибудь макрос такой написать. Уверен, что не одному мне пригодиться.
"Сортировка от А до Я" не "работает", Точнее работает только по какому-то определенному количеству первых символов в ячейке
 
Отличное решение, попробую. Нужно разбивать тогда по 255 символов в ячейку и сортировать столбцы поочереди. Спасибо МатросНаЗебре!
ПРОСМОТРХ выдает #Н/Д
 
Подскажите пожалуйста, как с этим справиться. Задача такая: каждому значению из столбца А нужно дать хеш число. Делаю так: функцией УНИК получаю список уникальных значений, им присваиваю хеш число, а потом ПРОСМОТРХ подтягиваю хеш число обратно к большой таблице. Но ПРОСМОТРХ почему-то нескольким тысячам значений возвращает значение, а остальным пишет #Н/Д. Если провалиться в ячейку и нажать Enter по будет значение (хеш сумма), но так же тысячи раз делать не будешь.
Ссылка на файл-пример:
https://disk.yandex.ru/d/SdAMpCA5CTZwAw
Может есть какое-нибудь средство от этого? Пробовал пересчет всего листа не помогает.
"Сортировка от А до Я" не "работает", Точнее работает только по какому-то определенному количеству первых символов в ячейке
 
Нет, это что-то другое. В общем сортировка (по крайней мере у меня) сортирует по первым 255 символам. Если они одинаковые, а за ними находятся разные символы, то эти ячейки никак не отсортировать (штатной сортировкой).
"Сортировка от А до Я" не "работает", Точнее работает только по какому-то определенному количеству первых символов в ячейке
 
Добрый день, гуру экселя и любители как я!
Столкнулся с такой проблемой - сортирую значения по столбцу А, а они не сортируются. Ущипнул себя, вроде не сплю. Опять сортирую - тоже самое. Файл прикладываю. Отсортированный диапозон должен выглядеть так, как если мы его отсортируем по столбцу С.
Даже не знаю что спросить. И долго мне с этой фобией жить? У всех так или у меня эксель уникальный?
Поиск эпитопов в белках
 
Супер, спасибо! Теперь и я знаю этот секрет :) надо будет попробовать в других пользовательских функциях поубирать ошибки, есть парочку.
Кстати, посмотрел тут видео, вот оно https://www.youtube.com/watch?v=Le5Hd-uhqA8 и понял как Павел сделал такую короткую суперформулу, сократив свою предыдущую, назначив определенным значениям переменные (оказывается в формулах можно делать переменные!).
Век живи - век учись.
Поиск эпитопов в белках
 
Чудеса, но теперь функция Epitopes3 работает в 5 раз быстрее чем формула, раньше было ровно наоборот. Евгений, а можете сделать так, что когда функция не может найти какое-либо значение, чтобы была пустая ячейка, а не ошибка #ЗНАЧ! как сейчас.
Поиск эпитопов в белках
 
Всем спасибо, низкий поклон, все замечательно работает! Функция  EpitopesFind7 на длину 8 сработало, а вот на 10 не выдает результат. На  счет функций get_peptide_score и Epitopes2 ошибался когда писал "с  длиной пептида пока функции нет", беру свои слова обратно, прекрасно  работают.
Павлу сказать нечего, я в шоке, я даже не думал что такие  сложные опреации можно реализовать в формулах. Бывают сложные вложенные  формул, которые сам не можешь написать, но которые разбираешь на  составляющие и вроде как-то логика становиться понятной, учишься сам на  них. Творение Павла не даст мне новых знаний, шедевр, повторить  невозможно, остается только любоваться :)
Всем спасибо!

P.S. Евгений, только увидел Ваше сообщение. Долго письмо это писал и с функциями разбирался...
Изменено: dim284 - 04.02.2024 12:40:54
Поиск эпитопов в белках
 
Сам все же разобрался с Microsoft Scripting Runtime, кто-то мне уже говорил что там капаться надо, вот я и подсмотрел в разных файлах. Но все равно спасибо за наводку Евгений. С длиной пептида пока функции нет, только у Павла формула безупречно работает и очень быстро.
Поиск эпитопов в белках
 
Евгений, добрый день! Да, все верно получается. Только вот что я не пойму, в присланном Вами файле все работает, но как только я код переношу в другой любой файл с любым расширением, то эксель ругается на строчку Dic1 As New Dictionary, пишет user defined type not defined. Где эти библиотеки искать, или что это такое вообще я понятия не имею. Подскажите пожалуйста как с этим бороться, не перый раз уже.
Ну и остается проблема с длинной пептида, посмотрите пожалуйста. Если например пептид будет длинной 10 аминокислот и массив с числами будет тоже 10 столбиков, то значит что-то в коде нужно поменять.
Поиск эпитопов в белках
 
Павел, добрый день, круто! Долго правда пытался понять где что искать, но разобрался. А как этот вариант можно переделать на другую длинну пептида, скажем на 8? Я подправил диапозоны, циферки 8 в формуле поменял на 7, а 9 на 8, но что-то пошло не так. (эксель у меня 2021, какой в интернете нашел, такой и поставил).
P.S. как вы все ловко новыми функциями владеете, я ещё со старыми не разобрался :)
Поиск эпитопов в белках
 
Очень хорошо. Функция get_peptide_score от R091n выдает правильный результат, динамический массив тоже не плохо, хотя происхождение пептида из конкретного белка будет трудно понять. EpitopesFind6 от testuser выдает такие же правильные значения, только если протягивать функцию по столбцу буудет получаться #ПЕРЕНОС! Функция Эпитопы от asesja где-то считает что-то не так, вариант вывода результате как я и хотел, все в строчку.
Ещё одна просьба, сразу не стал писать чтобы не перегружать, матрица с числами может различаться по длинне и колеблется от 8 до 14 аминокислот. Можно ли сделать так, чтобы функция выдавала длину пептида (и его скор расчитывала соответственно) в зависимости от длинны матрицы? Можно даже не делать дополнительный аргумент. Например длина матрицы 8 столбцов с числами (и один с обозначениями аминокислот), пептиды получаются 8 аминокислот длинной и Score расчитывается также на 8 соответственно.
Чуть сокровище не проглядел: вторая функция get_peptide_scoree от R091n выдает отличный результат.
Поиск эпитопов в белках
 
Наверное я не правильно объясняю :( Попробую ещё раз, с вашего позволения.
Призказка такая: в настоящее время, во всем мире развиваются направления персонализированной медицины (лечения рака, вакцины для людей с определенным гаплотипом и т.д.). Суть сводится к тому, что у всех людей разные HLA-молекулы, такие белки, которые связывают 9-ти аминокислотные пептиды от патогенов или раковых клеток и показывают их иммунной системе (как львенка в Короле Льве Walt Disney показывали стае). Наша задача, в мутированных_раковых\бактериальных\вирусных белках найти эти 9-ти членные аминокислотные пептиды. Белки как правило большие - десятки и сотни аминокислот. Нужно сделать так, чтобы компьютерный код анализировал всю последовательность белка находящегося в одной определенной ячейке, разбивая её на пептиды длинной 9 аминокислот и выдавал только те из них, score которых не ниже 25.
Поиск эпитопов в белках
 
Цитата
Тимофеев написал:
Да уж если правильно понял из N6 770 символов получается строка 10211 символов
Вот как раз чтобы она такая длинная не была, оставим например со Score не ниже 25 и получим 7 пептидов (ALENYITAL 27; SLLYNVPAV 29; ALMPSLTET 25; SLTETKTTV 25; IIGLMVGGV 25; VIVITLVML 25; SIHHGVVEV 30).
Изменено: dim284 - 02.02.2024 19:41:12
Поиск эпитопов в белках
 
Тимофеев, R091n, спасибо за формулы,буду изучать, обязательно пригодятся.
testuser второй вариант хороший, только в последней ячейке где длинный белок, в результате расчетов функции (где-то в памяти компьютера) должны получаться значения как в сообщение #2, в ко время как функция должна возвращать только те из них, значения score которых не ниже заданного в третьем аргументе.
Поиск эпитопов в белках
 
Добрый день, Тимофеев! За формулу Score спасибо, долго на неё смотрел и ещё буду смотреть, не могу пока как Вы массивами целыми ваять. Массив пептидов можно сделать, но не хочется на пептиды смотреть с низким Score. Рабочий вариант будет из одного столбца с тысячами белков. А так все верно, правильно понимаете :)
Поиск эпитопов в белках
 
Добрый день глубокоуважаемые гуру эксель, эксперты VBA. Очередной раз прошу Вас о помощи.
Задача такая: нужно найти в аминокислотной последовательности белка, который находится в одной ячейке, все эпитопы - девяти аминокислотные мотивы. В "памяти экселя", аминокислотная последовательность должна разбиваться на петиды по 9-ть аминокислот и каждый из пептидов получает некий Score по матрице. Например, в первой позиции пептида стоит аминокислота "S" имеет вес 2, во второй позиции "I" - 8, в третьей "H" - 0 и т.д. В результатах выводим пептид и через пробел его Score, если пептидов несколько, то через точку с запятой.В идеале, мне видится это в виде функции с тремя аргументами: Sequence - ссылка на ячейку с аминокислотной последовательностью; array - массив матрицы с числами, в данном случае B2:K21; Score - задается пользователем, ниже этого значения пептиды не возвращаются функцией.
Это нужно для того, чтобы в геномах патогенов, или опухолевых клетках раковых больных, искать эпитопы и нацеливать на их уничтожение иммуную систему.
Пример использования Excel для биоинформатики, Подготовка аминокислотных последовательностей для филогении
 
Цитата
написал:
вы хорошо потрудились
Спасибо за поддержку БМВ. Хорошо было бы, если бы эти посты на всех так действовали - пришел в больницу с жалобой, почитал брошюрку и пошел домой здоровый :)
С бактериями сложновато работать, генов много, да и компьютеры в НИИ оставляют желать лучшего. С вирусами проще, геномы небольшие, в ячейку помещаются, все летает.
Примечательно, что для работы с последовательностями нужен ограниченный набор специфических функций. Далее биологическая информация переводится в обычную информацию, с которой можно работать всеми доступными в Excel средствами. Всем советую!
Пример использования Excel для биоинформатики, Подготовка аминокислотных последовательностей для филогении
 

Ну и в конце. Для чего вообще все это нужно на практике. Люди всегда болели разными инфекционными агентами и задавали себе логичный вопрос: Иванов и Петвов инфицированы подобными штаммами, а у русских и немцев близкие штаммы и т.п. Нужно было научится отличать штаммы в пределах одного вида. Первое поколение таких попыток было фаготипирование и серотипирование – долго, сложно, плохо воспроизводимо, слабая дифференцирующая способность. Настала эра молекулярной биологии, появилось второе поколение методов основанных на анализе ДНК, часто предназначенные для определенного вида бактерий, среди них: spa-типирование, сполиготипирование, полиморфизм длин рестрикционных фрагментов, полиморфизм длин амплифицированных фрагментов и, как наиболее распространенный, мультилокусное типирование (MLST). В последнем методе определяют первичную структуру как правило семи вариабельных генов и по ним прослеживают филогенетические связи. Где-то в 2011 году произошло окончательное понимание того, что эти методы устарели и способствовало этому появление токсикогенной E. coli, которая по MLST была самой обыкновенной E. сoli. Собрали комиссию экспертов из разных стран … бог с ними. Третье поколение методов основаны на анализе полного генома, золотых стандартов пока нет, да и методов там несколько, один из которых анализ по коровым белкам, рассмотренный здесь. Этого анализ гораздо информативней, дешевле и быстрее в исполнении, но требует наличие биоинформатических навыков, людей которых как класса нет в России, по крайней мере в лабораториях мы их не видим.

Тут биологи скажут: - Постойте-постойте, откуда же NGS-секвенирование дешевле секвенирование по Сенгеру. Давайте посчитаем: на каждый из семи генов, чтобы их амплифицировать нужно по два праймера, возьмем их стандартного размера по 20 нуклеотидов, с ценой 30 рублей за нуклеотид. Итого: 7 генов * 20 праймеров * 30 рублей = 4200 рублей. Плюс сикенс каждого гена, читаем каждый ген с двух сторон, итого: 14 сиквенсов * 750 рублей/сиквенс =  10500. В итоге 14700 рублей весь анализ, если с первого раза все еще получится, держи карман шире. NGS-cеквенирование геномов на платформе Illumina за штамм 17900 (реклама запрещена, погуглите найдете). Второе будет дешевле поскольку в первом случае нужны ещё полимеразы, буферы для фореза, гели, чистка ДНК на колонках, время работы сотрудника и т.д.

Сравним MLST и то, что мы сегодня получили. В MLST всего 7 генов и по определению 7 точек по которым можно строить филогению. У нас же ДЛСТР получилось 12891 точка – разные аминокислоты в одних и тех же позициях, одних и тех же белков по происхождению, что в 1840 раз точнее, чем MLST-типирование. Изначально мы взяли по MLST-типированию только одну группу – ST8, то есть эти штаммы по этому методу находятся в одной группе, а как они относятся друк к другу внутри этой группы, мы не знаем, точнее не знали. А тут все видно, вот, например красные это Швейцария:

Суринам кучкуется:

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

У нас же в Росии много секвенируют, данных завались, только некому анализом занимать, мало кто в этом что понимает. Поэтому все данные лежат по лабораториям, многие их даже не выкладывают в базы данных. Ну теперь то мы попрем, планета excel все сделала, дальше живем на расслабоне  8)

Пример использования Excel для биоинформатики, Подготовка аминокислотных последовательностей для филогении
 

Все привет! Для молекулярной биологии (биоинформатики) есть множество специализиванных программ, например есть такие мощные инструменты как Geneious Prime, CLC bio, DNASTAR и многие другие, пусть и с меньшим функционалом, предназначенные для работы с последовательностями - нуклеотидными или аминокислотными. Здесь, я хочу показать, как можно использовать программу Excel для работы с последовательностями, при этом эксель не только не уступает по мощности или user friendly интерфейсу упомянутым «гигантам», но и даже превосходит их. Отчасти это сравнение неправильное, так как эти программы конкурируют между собой и, по сути, выполняют одни и теже операции (работа с плазмидами, сборка NGS-данных, визуализация геномов и т.д.), в экселе же, можно выполнять те операции, которых в принципе нет в этих программах (работать с массивами, вытаскивание информации по единичным позициям, одновременное глобальное выравнивания множества групп последовательностей и т.д.), т.е. эксель не конкурирует с ними, а только дополняет их. На мой взгляд это как раз то, что не хватает мокрым биологам, которые абсолютно не то, что умеют программировать, а даже пользоваться многочисленными программами, лежащими на GitHub (кнопочек в них нет, да и устанавливаются они как правило на Linux).

В качестве примера, попробуем построить филогенетическое дерево (родословную) золотистого стафилококка (Staphylococcus aureus) сиквенс типа 8 (ST8). Схематично этапы расчетов будут выглядеть так:

1) Получаем все гены этих штаммов, переносим их в эксель, удаляем (сортируем) идентичные последовательности.

2) Транслируем (переводим ДНК в белок, т.е. группы по три символа заменяем одним символом) и создаем список уникальных аминокислотных последовательностей.


3) Кластеризация: среди всех генов (пан-геном) необходимо найти только те гены, которые есть в каждом штамме (коровый геном). Кластеризуем последовательности, гомология которых не менее 80%.

4) Выравнивание. В итоге получаем более 600 коровых генов (т.е. 600 кластеров генов), различные по сиквенсу последовательности которых нужно выровнять между собой


 5) Возвращаем каждому геному свой выровненный белок.


6) Mask Alignment – аминокислоты, которые одинаковые в каждой позиции одного и того же кластера белков, ненужны для построения филогении, поэтому их можно и нужно удалить, тем самым сократив количество информации в более чем 10 раз.

7) Строим филогенетическое дерево или сеть и наслаждаемся полученным результатом.


Теперь немного подробнее каждый шаг:

1) Первый и последний шаг не относятся к экселю. В ГенБанке было скачано 1866 полных геномов золотистого стафилококка, определена принадлежность их к сиквенс-типам и выбрано 363 генома относящихся к ST8. Далее в эксель импортированы все гены каждого штамма (лист DataBase) (почти 973 тыс. генов).

Чтобы не хранить весь объем данных и уменьшить его, идентичные последовательности были удалены. Для этого была получена хеш-сумма каждой последовательности, массив сортирован и дубли удалены. Штатная функция «Удалить дубликаты» почему-то не работает на нуклеотидных и аминокислотных последовательностях, может они длинноваты?

2) Из нуклеотидов получаем белковые последовательности. Можно воспользоваться функцией из сообщения 9 от БМВ, за что его отдельная благодарность:

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=129032&MID=1060215#message1060215

Аналогично нуклеотидам, чтобы не утяжелять файл, получаем хеш-сумму и удаляем дубли. Переносим уникальные сиквенсы на новый лист (хотя можно работать и на том же).

3) Кластеризация: среди всех генов (пан-геном) необходимо найти только те гены, которые есть в каждом штамме (коровый геном). Нужно кластеризовать (объединить в группу) последовательности, гомология которых не менее 80%. Самый сложный шаг. Пока пользуюсь онлайн программой:

https://toolkit.tuebingen.mpg.de/tools/mmseqs2

Результаты так себе, но быстро и просто. Как реализовать в экселе не знаю. VBA коды всех так называемых «Меры схожести строк» нашел в интернете. Пожалуй, один из самых быстрых и выдающих хорошее значение, здесь:

https://rosettacode.org/wiki/Jaro_similarity#VBA

Вероятно, наиболее близкий алгоритм здесь и кстати мера схожести строк тоже тут шустрая:

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=95661&TITLE_SEO=95661-sravnenie-skhozhesti-teksta-dlya-raboty-s-bolshimi-spiskami

4) После кластеризации сиквенсов, оставляем только те кластеры, гены которых присутствуют в каждом геноме, т.е. не менее 363 раз (количество геномов). В итоге получаем более 600 коровых генов (т.е. 600 кластеров генов), различные по сиквенсу последовательности которых нужно выровнять между собой. Выравнивание лучше делать алгоритмом MAFF, код которой блестательно адоптировал doober, за что ему низкий поклон. Здесь ссылка на саму надстройку: https://disk.yandex.ru/d/py6SjDIZC4EiOA

А эта ссылка на программу, которую нужно скачать и распаковать на диск С, чтобы путь был такой c:\mafft-win:

https://mafft.cbrc.jp/alignment/software/windows_without_cygwin.html

скачиваем файл mafft-7.520-win64-signed.zip (версия на 18.11.2023, но может быть и более новая версия).

При вызове макроса, нужно выделить два столбца: правый столбец - сиквенсы которые нужно выровнять между собой, левый столбец содержит идентификатор, по которому MAFF объединяет последовательности для выравнивания. При этом данные выгружаются в соседний правый столбец относительно этих двух.

5) ВПР или ПРОСМОТРХ возвращаем каждому геному свой выровненный белок.

6) Mask Alignment – аминокислоты, которые одинаковые в каждой позиции одного и того же кластера белков, ненужны для построения филогении, поэтому их нужно удалить, тем самым сократив количество информации в более чем 10 раз. В данном примере если этого не сделать, то все в текстовый файл может не влезть, да и программам, которым в дальнейшем его обрабатывать будет намного сложнее. Великолепный макрос для этого написал Евгений Смирнов:

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=161293&TITLE_SEO=161293-udalit-vse-odinakovye-simvoly_-v-kazhdoy-pozitsii-v-kazhdoy-yacheyki-po-stolbtsu-_mask-alignment&MID=1275919&result=new#message1275919

7) Строим филогенетическое дерево или сеть и наслаждаемся полученным результатом. Возьмем например бесплатную великолепную программу PHYLOViZ, она очень простая и интуитивно понятная:

https://bitbucket.org/phyloviz/phyloviz-main/downloads/

Все конечные файлы со всеми расчетами прикладываю.

Файл для программы PHYLOViZ. Архив нужно распаковать, получится папка, после открыть программу PHYLOViZ, File – Open project – папка будет в виде 4-х сцепленных шестеренок – правой кнопкой мыши Load dataset. https://disk.yandex.ru/d/xQxqZAgL7r6qpw

Исходные файлы для PHYLOViZ, полученные из Excel:

Данные в фаста формате: https://disk.yandex.ru/d/N3hxZac64g-7dw

Метаданные: https://disk.yandex.ru/d/2d6WnTWbk_sT7A

И самое главное – файл Excel: https://disk.yandex.ru/d/Rw_R8eRXwHeYIQ


Если кто-то проделает все это от начала до конца, тот настоящий биоинформатик, можете смело получать диплом!

Это лишь один из массы примеров, в котором показано что Excel способен решать задачи по биоинформатике. Придумать можно сколько угодно.

Надеюсь, никто не будет смеяться нам моими примитивными пассами над экселем. И вообще, гуру экселя, для нормальных людей написано десятки тысяч макросов, функций и формул, можно что угодны вытворять в нём, даже в игры играть, ну, когда же вы уже наконец обратите внимание на мокрых биологов? Это же, не справедливо ;)

Изменено: dim284 - 19.11.2023 12:00:31
Удалить все одинаковые символы, в каждой позиции в каждой ячейки по столбцу (Mask Alignment)
 
Евгений, спасибо огромное! Все очень круто работает. Постараюсь в ближайшее вермя пост для раздела Курилка написать. Кому-то будет полезно, кому-то, надеюсь, просто интересно. Все получилось! Дайте пару часов  8)  
Удалить все одинаковые символы, в каждой позиции в каждой ячейки по столбцу (Mask Alignment)
 
Макрос отлично работает, спасибо Евгений! Но все же, побуду занудой, можно сделать так, чтобы его можно было применить к нескольким столбцам сразу? Выделил например диапозон B2:XJ364 и нажал ОК. Макрос будет более универсальный.
Удалить все одинаковые символы, в каждой позиции в каждой ячейки по столбцу (Mask Alignment)
 
Евгений, давайте в теже ячейки, а то файл тяжеловатый становиться, лучше заменить исходные данные. Как однажды справедливо заметил doober, лучше оставить первое диалоговое окно, в противном случае стороннему человеку не понятно почему макрос не работает.
Удалить все одинаковые символы, в каждой позиции в каждой ячейки по столбцу (Mask Alignment)
 
В целом работает, но на таком велике я не уеду. Можно по просьбе рабочего класса, выгрузку сделать в теже самые ячейки: например 100 ячеек в столбце, 100 и меняем на новые данные. И можно добавить ещё столбцы, количество ячеек в каждом столбце будет одинаковое.
-------------------------------------
Ну красота! Ещё бы пару сотню столбцов
-------------------------------------
Прикрепляю другой пример, чуть больше, но ближе к жизни.
Изменено: dim284 - 18.11.2023 17:29:53
Удалить все одинаковые символы, в каждой позиции в каждой ячейки по столбцу (Mask Alignment)
 
Евгений Смирнов, здравствуйте! Спасибо за ответ, но у меня ошибка выскакиевает, скриншот прикладываю.
А можно диапозон не в коде задавать, а либо по выделенному диапозону, либо после вызова макроса выделять диапозон?

А если вставить в модуль этой книги то работает. Наверное надо здесь что-то переделать:
Set Rg1 = ThisWorkbook.Worksheets("Лист1").Range("A2:A5")
Изменено: dim284 - 18.11.2023 15:20:41
Удалить все одинаковые символы, в каждой позиции в каждой ячейки по столбцу (Mask Alignment)
 
Добрый день! Помогите пожалуйста выполнить следующее действие: в каждой ячейке одного столбца, поочередно сравнить каждый первый (второй, третий и тд.) символы и если во всех ячейках один и тот-же символ, то удалить его.
Например, имеем две ячейки:
A1 "Мама мыла раму"
A2 "Мама пила ром-"
Остаться должно:
A1 "мыау"
A2 "пио-"
Наверное лучше макрос, которым можно было бы выделить несколько столбцов и он бы по каждому столбцу выполнил аналогичные действия.
Пример прикрепляю. Это нужно для уменьшения массива информации для построения филогенетических деревьев. Убираем все одинаковое, оставляем все отличающееся между последовательностями.
"Да не оскудеет рука дающего".  Евангелие от Матфея, глава 5, стих 7.
Наиболее длинная подстрока
 


Низкий поклон!
Страницы: 1 2 3 4 5 6 7 8 След.
Наверх