Сцепление ячеек, в которых значения через запяту
VadimVV
Дата: Четверг, 17.07.2014, 10:18 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Добрый день. Есть группа ячеек вида: А1_____________B1 213 | 600, 65-67, 689, 69, 9619 Как сделать так, чтобы в ячейке А2 получить значение 213600, А3 21365, А4 21366, А5 21367, А6 213689 и так далее. Заранее, благодарю. [moder]Где файл? Накажу Сорри, файл добавил
Добрый день. Есть группа ячеек вида: А1_____________B1 213 | 600, 65-67, 689, 69, 9619 Как сделать так, чтобы в ячейке А2 получить значение 213600, А3 21365, А4 21366, А5 21367, А6 213689 и так далее. Заранее, благодарю. [moder]Где файл? Накажу Сорри, файл добавил VadimVV
Сообщение отредактировал VadimVV - Четверг, 17.07.2014, 12:41
Ответить
Сообщение Добрый день. Есть группа ячеек вида: А1_____________B1 213 | 600, 65-67, 689, 69, 9619 Как сделать так, чтобы в ячейке А2 получить значение 213600, А3 21365, А4 21366, А5 21367, А6 213689 и так далее. Заранее, благодарю. [moder]Где файл? Накажу Сорри, файл добавил Автор - VadimVV Дата добавления - 17.07.2014 в 10:18
VadimVV
Дата: Четверг, 17.07.2014, 12:45 |
Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Добавил файл с примером.
Ответить
Сообщение Добавил файл с примером. Автор - VadimVV Дата добавления - 17.07.2014 в 12:45
VadimVV
Дата: Понедельник, 21.07.2014, 10:19 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Коллеги, есть какие-нибудь варианты решения?
Коллеги, есть какие-нибудь варианты решения? VadimVV
Ответить
Сообщение Коллеги, есть какие-нибудь варианты решения? Автор - VadimVV Дата добавления - 21.07.2014 в 10:19
Hugo
Дата: Понедельник, 21.07.2014, 11:12 |
Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3859
Репутация:
819
±
Замечаний:
0% ±
365
Когда-то совместно делали такую UDF: [vba]Код
Function ExpandListA(ByVal Src As String, _ Optional GrSep$ = ",", _ Optional InGrSep$ = "-", _ Optional DelChar1$ = " ", _ Optional DelChar2$ = " ", _ Optional DelChar3$ = " ", _ Optional outSep$ = "; ") As String Dim elem, aNums, j As Long, n1 As Long, n2 As Long Src = Replace(Src, DelChar1$, "") Src = Replace(Src, DelChar2$, "") Src = Replace(Src, DelChar3$, "") If Src = "" Then Exit Function For Each elem In Split(Src, GrSep) aNums = Split(elem, InGrSep) n1 = aNums(0) n2 = aNums(UBound(aNums)) For j = n1 To n2 Step IIf(n1 < n2, 1, -1) ExpandListA = ExpandListA & outSep & j Next Next ExpandListA = Mid(ExpandListA, Len(outSep) + 1) End Function
[/vba] Можно использовать в макросе.
Когда-то совместно делали такую UDF: [vba]Код
Function ExpandListA(ByVal Src As String, _ Optional GrSep$ = ",", _ Optional InGrSep$ = "-", _ Optional DelChar1$ = " ", _ Optional DelChar2$ = " ", _ Optional DelChar3$ = " ", _ Optional outSep$ = "; ") As String Dim elem, aNums, j As Long, n1 As Long, n2 As Long Src = Replace(Src, DelChar1$, "") Src = Replace(Src, DelChar2$, "") Src = Replace(Src, DelChar3$, "") If Src = "" Then Exit Function For Each elem In Split(Src, GrSep) aNums = Split(elem, InGrSep) n1 = aNums(0) n2 = aNums(UBound(aNums)) For j = n1 To n2 Step IIf(n1 < n2, 1, -1) ExpandListA = ExpandListA & outSep & j Next Next ExpandListA = Mid(ExpandListA, Len(outSep) + 1) End Function
[/vba] Можно использовать в макросе. Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Когда-то совместно делали такую UDF: [vba]Код
Function ExpandListA(ByVal Src As String, _ Optional GrSep$ = ",", _ Optional InGrSep$ = "-", _ Optional DelChar1$ = " ", _ Optional DelChar2$ = " ", _ Optional DelChar3$ = " ", _ Optional outSep$ = "; ") As String Dim elem, aNums, j As Long, n1 As Long, n2 As Long Src = Replace(Src, DelChar1$, "") Src = Replace(Src, DelChar2$, "") Src = Replace(Src, DelChar3$, "") If Src = "" Then Exit Function For Each elem In Split(Src, GrSep) aNums = Split(elem, InGrSep) n1 = aNums(0) n2 = aNums(UBound(aNums)) For j = n1 To n2 Step IIf(n1 < n2, 1, -1) ExpandListA = ExpandListA & outSep & j Next Next ExpandListA = Mid(ExpandListA, Len(outSep) + 1) End Function
[/vba] Можно использовать в макросе. Автор - Hugo Дата добавления - 21.07.2014 в 11:12
VadimVV
Дата: Понедельник, 21.07.2014, 13:00 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Что-то не получается запустить его
Что-то не получается запустить его VadimVV
Ответить
Сообщение Что-то не получается запустить его Автор - VadimVV Дата добавления - 21.07.2014 в 13:00
Hugo
Дата: Понедельник, 21.07.2014, 13:42 |
Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3859
Репутация:
819
±
Замечаний:
0% ±
365
Его не нужно запускать, и вообще это она Это функция пользователя, можно использовать на листе или в коде, она раскладывает Ваши записи в перечисление через выбранный разделитель. Вот её результат можно использовать в коде для генерации таблицы.
Его не нужно запускать, и вообще это она Это функция пользователя, можно использовать на листе или в коде, она раскладывает Ваши записи в перечисление через выбранный разделитель. Вот её результат можно использовать в коде для генерации таблицы. Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Его не нужно запускать, и вообще это она Это функция пользователя, можно использовать на листе или в коде, она раскладывает Ваши записи в перечисление через выбранный разделитель. Вот её результат можно использовать в коде для генерации таблицы. Автор - Hugo Дата добавления - 21.07.2014 в 13:42
VadimVV
Дата: Понедельник, 21.07.2014, 15:12 |
Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
ага, разобрался. Осталось понять, какие аргументы этой функции необходимо указывать в полях Src, GrSep, InGrSep
ага, разобрался. Осталось понять, какие аргументы этой функции необходимо указывать в полях Src, GrSep, InGrSep VadimVV
Ответить
Сообщение ага, разобрался. Осталось понять, какие аргументы этой функции необходимо указывать в полях Src, GrSep, InGrSep Автор - VadimVV Дата добавления - 21.07.2014 в 15:12
Hugo
Дата: Понедельник, 21.07.2014, 16:32 |
Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3859
Репутация:
819
±
Замечаний:
0% ±
365
Src - исходная строка GrSep - разделитель групп InGrSep - разделитель в группе DelChar1/2/3 - это возможные варианты мусора в строке. На Вашем примере достаточно указать только исходную строку, остальное подставится что прописано по умолчанию в коде.
Src - исходная строка GrSep - разделитель групп InGrSep - разделитель в группе DelChar1/2/3 - это возможные варианты мусора в строке. На Вашем примере достаточно указать только исходную строку, остальное подставится что прописано по умолчанию в коде. Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Src - исходная строка GrSep - разделитель групп InGrSep - разделитель в группе DelChar1/2/3 - это возможные варианты мусора в строке. На Вашем примере достаточно указать только исходную строку, остальное подставится что прописано по умолчанию в коде. Автор - Hugo Дата добавления - 21.07.2014 в 16:32
VadimVV
Дата: Понедельник, 21.07.2014, 17:01 |
Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Подставил, но результат получается не такой, как нужно. Перечень цифр идет через ";" в одну строку. Мне же необходимо, чтобы каждое число было в новой ячейке. Добавил в примере лист "как получается".
Подставил, но результат получается не такой, как нужно. Перечень цифр идет через ";" в одну строку. Мне же необходимо, чтобы каждое число было в новой ячейке. Добавил в примере лист "как получается". VadimVV
Ответить
Сообщение Подставил, но результат получается не такой, как нужно. Перечень цифр идет через ";" в одну строку. Мне же необходимо, чтобы каждое число было в новой ячейке. Добавил в примере лист "как получается". Автор - VadimVV Дата добавления - 21.07.2014 в 17:01
Hugo
Дата: Понедельник, 21.07.2014, 17:06 |
Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3859
Репутация:
819
±
Замечаний:
0% ±
365
Ну вот теперь берёте эту строку (можно/лучше прямо от функции, без выгрузки на лист), разбиваете в массив по разделителю, гененрите соответствующий массив для результата, заполняете его данными, выгружаете на лист ниже последней заполненной ячейки. Далее берёте следующую исходную строку и т.д. Я вот только в примере не понял - а куда дели ещё пару-тройку строк для Австрия (mob) - Mobilkom? Если не нужны - тогда в примере нет логики. Я исходил из того, что и они нужны.
Ну вот теперь берёте эту строку (можно/лучше прямо от функции, без выгрузки на лист), разбиваете в массив по разделителю, гененрите соответствующий массив для результата, заполняете его данными, выгружаете на лист ниже последней заполненной ячейки. Далее берёте следующую исходную строку и т.д. Я вот только в примере не понял - а куда дели ещё пару-тройку строк для Австрия (mob) - Mobilkom? Если не нужны - тогда в примере нет логики. Я исходил из того, что и они нужны. Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Ну вот теперь берёте эту строку (можно/лучше прямо от функции, без выгрузки на лист), разбиваете в массив по разделителю, гененрите соответствующий массив для результата, заполняете его данными, выгружаете на лист ниже последней заполненной ячейки. Далее берёте следующую исходную строку и т.д. Я вот только в примере не понял - а куда дели ещё пару-тройку строк для Австрия (mob) - Mobilkom? Если не нужны - тогда в примере нет логики. Я исходил из того, что и они нужны. Автор - Hugo Дата добавления - 21.07.2014 в 17:06
VadimVV
Дата: Понедельник, 21.07.2014, 17:23 |
Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Все нужны, я пока пробую с первой строкой. У меня получается разбиение по ячейка в строке, но не в столбец. Т.е. я беру первую строку, значения начинают через ; идти, затем использую "Текст по столбцам", каждое значение получается в новой ячейке, но ячейки идут в строку, а не в столбец и знак ";" не убирается. Можно, конечно, остальное в ручном режиме сделать, но там итоговая таблица больше, чем на тысячу строк...
Все нужны, я пока пробую с первой строкой. У меня получается разбиение по ячейка в строке, но не в столбец. Т.е. я беру первую строку, значения начинают через ; идти, затем использую "Текст по столбцам", каждое значение получается в новой ячейке, но ячейки идут в строку, а не в столбец и знак ";" не убирается. Можно, конечно, остальное в ручном режиме сделать, но там итоговая таблица больше, чем на тысячу строк... VadimVV
Сообщение отредактировал VadimVV - Понедельник, 21.07.2014, 17:30
Ответить
Сообщение Все нужны, я пока пробую с первой строкой. У меня получается разбиение по ячейка в строке, но не в столбец. Т.е. я беру первую строку, значения начинают через ; идти, затем использую "Текст по столбцам", каждое значение получается в новой ячейке, но ячейки идут в строку, а не в столбец и знак ";" не убирается. Можно, конечно, остальное в ручном режиме сделать, но там итоговая таблица больше, чем на тысячу строк... Автор - VadimVV Дата добавления - 21.07.2014 в 17:23
Hugo
Дата: Понедельник, 21.07.2014, 18:36 |
Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3859
Репутация:
819
±
Замечаний:
0% ±
365
Чувствую Вам нужно начинать с Hello, World!... Но т.к. ветка фомульная - ждём предложений формулами? Или перенести уже в VBA?
Чувствую Вам нужно начинать с Hello, World!... Но т.к. ветка фомульная - ждём предложений формулами? Или перенести уже в VBA? Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Чувствую Вам нужно начинать с Hello, World!... Но т.к. ветка фомульная - ждём предложений формулами? Или перенести уже в VBA? Автор - Hugo Дата добавления - 21.07.2014 в 18:36
VadimVV
Дата: Вторник, 22.07.2014, 09:47 |
Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Ну в целом - да, начинать с Hello world :). В программировании не силен, хотя в школе на паскале писал, в универе вижуал бейсик проходили один семестр Читая код, относительно понимаю, что он делает, но как его заставить работать - знаний не хватает. Если не сильно трудозатратно, то лучше в VBA перенести.
Ну в целом - да, начинать с Hello world :). В программировании не силен, хотя в школе на паскале писал, в универе вижуал бейсик проходили один семестр Читая код, относительно понимаю, что он делает, но как его заставить работать - знаний не хватает. Если не сильно трудозатратно, то лучше в VBA перенести. VadimVV
Сообщение отредактировал VadimVV - Вторник, 22.07.2014, 09:48
Ответить
Сообщение Ну в целом - да, начинать с Hello world :). В программировании не силен, хотя в школе на паскале писал, в универе вижуал бейсик проходили один семестр Читая код, относительно понимаю, что он делает, но как его заставить работать - знаний не хватает. Если не сильно трудозатратно, то лучше в VBA перенести. Автор - VadimVV Дата добавления - 22.07.2014 в 09:47
Hugo
Дата: Вторник, 22.07.2014, 10:08 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3859
Репутация:
819
±
Замечаний:
0% ±
365
Перенести тему легко. Вот код писать пока некогда - там где-то 30-40 минут нужно выделить (с учётом использования уже этой готовой функции).
Перенести тему легко. Вот код писать пока некогда - там где-то 30-40 минут нужно выделить (с учётом использования уже этой готовой функции). Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Перенести тему легко. Вот код писать пока некогда - там где-то 30-40 минут нужно выделить (с учётом использования уже этой готовой функции). Автор - Hugo Дата добавления - 22.07.2014 в 10:08