Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 251

Перечисление значений через запятую

29.12.2018, 11:22. Показов 6394. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Подскажите, есть у меня примерчик в котором уникальные значения выискивает из столбца, но когда он выискивает он новый столбец создает, а мне надо чтобы он делал рядом табличку где например из столбца "содержимое" берется текст 1 и напротив него перечисляются значения под которыми он встречается. Там на листе есть пример как хотелось чтобы получалось.
Кто может подсказать, как такое реализовать?
Документ приложил.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.12.2018, 11:22
Ответы с готовыми решениями:

Распределить числа через запятую в ячейки
Есть массив чисел через запятую и пробел. Например 1, 2, 4, 55, 896, 345, 39835, 345. Нужно их вставить в файл exel и получить один столбец...

Найти максимальное число из перечисленных через запятую
Здравствуйте, Уважаемые! есть таблица, один из столбцов которой содержит некие числа, перечисленные через запятую. в соседние ячейки...

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

7
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.12.2018, 11:54
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Test()
    Dim t, a, i&
    t = Range("I3").Value
    a = Range("A2", Cells(Rows.Count, "B").End(xlUp)).Value
 
    With CreateObject("Scripting.Dictionary")
         For i = 1 To UBound(a)
             If t = a(i, 1) Then .Item(a(i, 2)) = ""
         Next
         Range("J3").Value = Join(.Keys, ",")
    End With
End Sub

P.S. Если повторов не будет (как в опубликованном файле), то в примере - словарь вообще не нужен.
0
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 251
29.12.2018, 12:00  [ТС]
Спасибо за быстрый ответ, но это не совсем то что нужно, это он перечисляет в уже известное значение, а надо чтобы он определил это значение, а затем перечислил, где под каким значением он встречается, итак, чтобы для всех видов "текст №"?
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.12.2018, 13:42
Лучший ответ Сообщение было отмечено Paylo как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Test2()
    Dim t, a, i&
    a = Range("A2", Cells(Rows.Count, "B").End(xlUp)).Value
 
    With CreateObject("Scripting.Dictionary")
         For i = 1 To UBound(a)
             t = a(i, 1)
             .Item(t) = .Item(t) & "," & a(i, 2)
         Next
         Range("J3").Resize(.Count) = Application.Transpose(.Items)
         Range("I3").Resize(.Count) = Application.Transpose(.Keys)
    End With
End Sub
Правда злые языки утверждают, что соответствие пара ключ-значение не гарантируются, но протестировать можно.
1
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 251
29.12.2018, 14:03  [ТС]
pashulka, То что нужно спасибо, большое. Буду изучать
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.12.2018, 14:06
P.S. Если лидирующий разделитель , мешает, то его можно удалить, например, так (между строками 10 и 11)

Visual Basic
1
Range("J3").Resize(.Count).TextToColumns Range("J3"), xlFixedWidth, FieldInfo:=Array(Array(0, 9), Array(1, 2))
0
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 251
29.12.2018, 14:13  [ТС]
Да я просто местами поменял он в конце не мешает А так спасибо!
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.12.2018, 15:11
Ещё один способ избавиться от , не прибегая к доп.циклу

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Test2v2()
    Dim t, a, i&
    a = Range("A2", Cells(Rows.Count, "B").End(xlUp)).Value
 
    With CreateObject("Scripting.Dictionary")
         For i = 1 To UBound(a)
             t = a(i, 1)
             If .Exists(t) = True Then
                .Item(t) = .Item(t) & "," & a(i, 2)
             Else
                .Item(t) = a(i, 2)
             End If
         Next
         Range("J3").Resize(.Count) = Application.Transpose(.Items)
         Range("I3").Resize(.Count) = Application.Transpose(.Keys)
    End With
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Test2v3()
    Dim t, a, i&
    a = Range("A2", Cells(Rows.Count, "B").End(xlUp)).Value
 
    With CreateObject("Scripting.Dictionary")
         For i = 1 To UBound(a)
             t = a(i, 1)
             .Item(t) = .Item(t) & IIf(.Exists(t), ",", "") & a(i, 2)
         Next
         Range("J3").Resize(.Count) = Application.Transpose(.Items)
         Range("I3").Resize(.Count) = Application.Transpose(.Keys)
    End With
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2018, 15:11
Помогаю со студенческими работами здесь

Запись цифр, которые содержатся в одном столбце через дефис и запятую
Здравствуйте! Помогите решить задачу посредством VB в EXCEL 2003. В столбце "A" содержатся названия уровня, в столбце "B"...

Перечисление значений строк через запятую с запросе с группировкой
Форумчане, доброго времени суток! Есть запрос, в котором сделана попытка перечислить значения строк через запятую. Попытка- т.к....

Перечисление записи через запятую
Вывести список сотрудников компании, имеющих коллег с таким же идентификатором должности и окладом. А фамилии при этом должны быть...

Перечисление строк через запятую в запросе с группировкой
Добрый день! Необходимо при выводе запроса сгрупировать список по полю ID договора, при этом значения поля Зав № уплотнения...

Перебор значений массива через запятую
По логике вещей я так понимаю, чтобы перебрать значения массива через запятую. echo explode(', ', Array ('1','2')); Что та не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru