В столбец C9:C11 вписан текст. Текст выглядит так. В первой ячейке "Два+Четыре+Семь". Во второй ячейке "Четыре+Восемь". В третьей ячейке "Семь+Восемь".
Как заставить формулой - в желтый столбец построчно извлечь слова Два, Четыре, Семь, Восемь (учитывается, что в исходном столбце - слова Семь, Четыре, Восемь - повторяется по два раза). Разделитель слов - это знак "+"
Добрый вечер, форумчане Помогите с формулой.
В столбец C9:C11 вписан текст. Текст выглядит так. В первой ячейке "Два+Четыре+Семь". Во второй ячейке "Четыре+Восемь". В третьей ячейке "Семь+Восемь".
Как заставить формулой - в желтый столбец построчно извлечь слова Два, Четыре, Семь, Восемь (учитывается, что в исходном столбце - слова Семь, Четыре, Восемь - повторяется по два раза). Разделитель слов - это знак "+"rotten41
Ну посмотрите сами. В столбце C9:C11 слово "семь" - находится в ячейке C9 и в ячейке C11. То есть - встречается дважды. И это слово - извлекается в желтый столбец - как показано в файле.
Ну посмотрите сами. В столбце C9:C11 слово "семь" - находится в ячейке C9 и в ячейке C11. То есть - встречается дважды. И это слово - извлекается в желтый столбец - как показано в файле.rotten41
если речь идет об извлечении исключительно уникальных имен, то это одно. а когда используете логическую конструкцию "потому что", то начинаешь полагать, что извлекают их именно потому, что они дважды встречаются.)))
А просто уникальные слова извлекаются просто)) сначала извлекаете все слова, используя разделительный символ а потом на вкладке Данные - Удалить Дубликаты
если речь идет об извлечении исключительно уникальных имен, то это одно. а когда используете логическую конструкцию "потому что", то начинаешь полагать, что извлекают их именно потому, что они дважды встречаются.)))
А просто уникальные слова извлекаются просто)) сначала извлекаете все слова, используя разделительный символ а потом на вкладке Данные - Удалить ДубликатыSandor
А просто уникальные слова извлекаются просто)) сначала извлекаете все слова, используя разделительный символ а потом на вкладке Данные - Удалить Дубликаты
А просто уникальные слова извлекаются просто)) сначала извлекаете все слова, используя разделительный символ а потом на вкладке Данные - Удалить Дубликаты
Вы можете пример подобной формулы привести?rotten41
Сообщение отредактировал rotten41 - Воскресенье, 04.06.2017, 11:40
Здравствуйте. Что то "на химичел" не знаю разберетесь ли. Завтра наверно сам не разберусь. Вроде работает, но с доп столбцами и именованными формулами в Диспетчере имен.
Здравствуйте. Что то "на химичел" не знаю разберетесь ли. Завтра наверно сам не разберусь. Вроде работает, но с доп столбцами и именованными формулами в Диспетчере имен.gling
Формулы? а как в формуле описать действия? нажать вкладку Данные, нажать - удалить дубликаты... да даже если и можно придумать такую формулу, то зачем? очевидно же, что это не рационально. Никто же не пытается , например, всю бухгалтерию запихнуть в одну формулу. Есть интерфейс самой Excel, вполне развитой. Не всегда нужно его формулами подменять. Если прям хочется автоматизировать, то я бы так предложил
[vba]
Код
Sub uspok_pelenu() ch = "+" ' ñèìâîë ðàçäåëåíèÿ, åãî èùåì m = 9 For i = 9 To 11 'ðàçáèâàåì íà ñëîâà ms = Cells(i, 3).Value n3 = Len(ms) n2 = 1 For n = 0 To 3 ' èñõîäèì èç ïðåäïîëîæåíèÿ, ÷òî çíà÷èìûõ ñëîâ â ñòðîêåì íå áîëåå 4, òîïèêñòàðòåð íå îïèñàë â óñëîâèÿõ n1 = InStr(n2, ms, ch) ' InStr([start, ]string1, string2[, compare]) If (n1 <= n2) Then GoTo line1: ms3 = Mid(ms, n2, n1 - n2) ' âûòàñêèâàåì òåêñò ñ ïîçèöèè n2 äëèíîé n1-n2 Cells(m, 5).Value = ms3 n2 = n1 + 1 m = m + 1 Next n line1: ms3 = Mid(ms, n2, n3 - n2 + 1) ' ïðîïèñûâàåì îñòàòîê îò ñòðîêè Cells(m, 5).Value = ms3 m = m + 1
Next i 'çàêîí÷èëè ðàçáèâêó ñëîâ nB = WorksheetFunction.CountA(Range("E:E")) + 4 ' ñ÷èòàåò íåïóñòûå ñòðîêè, c ïîïðàâêîé íà âíåñåííûå ðóêàìè ÒÑ èñêàæåíèÿ ms2 = "$E$9:$E$" & nB Range(ms2).RemoveDuplicates Columns:=1, Header:=xlNo End Sub
[/vba]
с русскими буквами тут комменты как-то плывут. Но в файле нормально
Цитата
Вы можете пример подобной формулы привести?
Формулы? а как в формуле описать действия? нажать вкладку Данные, нажать - удалить дубликаты... да даже если и можно придумать такую формулу, то зачем? очевидно же, что это не рационально. Никто же не пытается , например, всю бухгалтерию запихнуть в одну формулу. Есть интерфейс самой Excel, вполне развитой. Не всегда нужно его формулами подменять. Если прям хочется автоматизировать, то я бы так предложил
[vba]
Код
Sub uspok_pelenu() ch = "+" ' ñèìâîë ðàçäåëåíèÿ, åãî èùåì m = 9 For i = 9 To 11 'ðàçáèâàåì íà ñëîâà ms = Cells(i, 3).Value n3 = Len(ms) n2 = 1 For n = 0 To 3 ' èñõîäèì èç ïðåäïîëîæåíèÿ, ÷òî çíà÷èìûõ ñëîâ â ñòðîêåì íå áîëåå 4, òîïèêñòàðòåð íå îïèñàë â óñëîâèÿõ n1 = InStr(n2, ms, ch) ' InStr([start, ]string1, string2[, compare]) If (n1 <= n2) Then GoTo line1: ms3 = Mid(ms, n2, n1 - n2) ' âûòàñêèâàåì òåêñò ñ ïîçèöèè n2 äëèíîé n1-n2 Cells(m, 5).Value = ms3 n2 = n1 + 1 m = m + 1 Next n line1: ms3 = Mid(ms, n2, n3 - n2 + 1) ' ïðîïèñûâàåì îñòàòîê îò ñòðîêè Cells(m, 5).Value = ms3 m = m + 1
Next i 'çàêîí÷èëè ðàçáèâêó ñëîâ nB = WorksheetFunction.CountA(Range("E:E")) + 4 ' ñ÷èòàåò íåïóñòûå ñòðîêè, c ïîïðàâêîé íà âíåñåííûå ðóêàìè ÒÑ èñêàæåíèÿ ms2 = "$E$9:$E$" & nB Range(ms2).RemoveDuplicates Columns:=1, Header:=xlNo End Sub
[/vba]
с русскими буквами тут комменты как-то плывут. Но в файле нормальноSandor
gling, не работает. Ввел в ячейку C17 - текст "Девять+Шесть+Десять" - слова "Шесть" и "Десять" - в желтом столбце не отобразились Удалил из главного столбца - все значения кроме первого "Два+Четыре+Семь". По идее - в желтый столбец должен был вывестись результат "Два","Четыре", "Шесть" - построчно. Но там выводится только значение "Два".
gling, не работает. Ввел в ячейку C17 - текст "Девять+Шесть+Десять" - слова "Шесть" и "Десять" - в желтом столбце не отобразились Удалил из главного столбца - все значения кроме первого "Два+Четыре+Семь". По идее - в желтый столбец должен был вывестись результат "Два","Четыре", "Шесть" - построчно. Но там выводится только значение "Два".rotten41
Да gling пусть не работает, но формула то работает. В примере между данными не было пустых ячеек, по этому и не предполагалось, что между текстами будут пустые ячейки. С пустыми ячейками нужно искать немного другое решение. В старом файле немного подправил формулу в ДиспИмен, закралась ошибка.
Да gling пусть не работает, но формула то работает. В примере между данными не было пустых ячеек, по этому и не предполагалось, что между текстами будут пустые ячейки. С пустыми ячейками нужно искать немного другое решение. В старом файле немного подправил формулу в ДиспИмен, закралась ошибка.gling
Вот такая, введенная как формула массива, покажет уникальные значения из диапазона текстов. НО! Нашел ошибку: только для текстов с одинаковым количеством слов. Нужно добавить два больших фрагмента, чтобы это условие не влияло на работу формулы. В Excel-2003 работать не будет - уровней вложенности много.
Та же , но с доработкой. Фрагмент вынесен в именованный диапазон. Эта тоже формула массива.
Вот такая, введенная как формула массива, покажет уникальные значения из диапазона текстов. НО! Нашел ошибку: только для текстов с одинаковым количеством слов. Нужно добавить два больших фрагмента, чтобы это условие не влияло на работу формулы. В Excel-2003 работать не будет - уровней вложенности много.
Та же , но с доработкой. Фрагмент вынесен в именованный диапазон. Эта тоже формула массива.