Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений., Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений.
Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений., Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений.
олег написал: немного не то, что хотелось. Нужно было ID из первой таблицы внести в столбик id во второй таблице, учитывая, что адреса там написаны по другому.
Я бы на Вашем месте на спешил с выводами. Основная проблема это то, что написаны по разному. Сто процентов определить правильность выбора это очень сложно, нужно обговаривать кучу условий. Файл я приложил как пример, как бы это могло выглядеть, в настройках можно уменьшить или увеличить точность выбора, как это сделать в ссылках выше. Ещё можно отфильтровать, отсортировать, удалить дубликаты, как говорится любой каприз. Можно написать макрос, но как я уже говорил необходимо учесть много нюансов, постом это всё протестировать, найти ошибки их исправить, мне лень этим заниматься, но думаю и там без ручной работы не обойтись, у Вас есть задвоенные ID, например: Москва г, Вернадского пр-кт, 105, к 4 имеет два ID: МСК5996 и МСК3648, также г Москва, ул 6-я Радиальная, д 3 к 8 имеет два ID: МСК5358 и МСК3122 и т.д.
Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений., Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений.
Sub Макрос1()
Dim arr_1, arr_2, n As Integer, m As Integer, k As Integer, lr As Integer
lr = Cells(Rows.Count, 2).End(xlUp).Row
ReDim arr_1(1 To WorksheetFunction.Sum(Range("C2:C" & lr)), 1 To 1)
arr_2 = Range("B2:C" & lr)
m = 1
For n = 1 To UBound(arr_2)
For k = 1 To arr_2(n, 2)
arr_1(m, 1) = arr_2(n, 1)
m = m + 1
Next
Next
[g2].Resize(UBound(arr_1), 1) = arr_1
End Sub
Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений., Вывод содержимого ячейки через поиск части текста в диапазоне, используя порядок вхождений.
Объединить два столбца в один в нужном порядке, Объединить два столбца( темы и подтемы) в один. У каждой темы свои уникальные подтемы, подробная инфа ниже
Sub Макрос1()
Dim arr_1, arr_2, n As Integer, m As Integer
Set sd = CreateObject("Scripting.Dictionary")
arr_1 = Range("A2:B" & Cells(Rows.Count, 2).End(xlUp).Row).Value
m = 0
For n = 1 To UBound(arr_1)
If Not sd.Exists(arr_1(n, 1)) Then Set sd(arr_1(n, 1)) = CreateObject("Scripting.Dictionary"): m = m + 1
If Not sd(arr_1(n, 1)).Exists(arr_1(n, 2)) Then sd(arr_1(n, 1)).Add arr_1(n, 2), arr_1(n, 2): m = m + 1
Next
ReDim arr_2(1 To m, 1 To 2)
n = 1: k = 0: j = 0
For Each y In sd
arr_2(n, 2) = y
k = k + 1
j = 0
arr_2(n, 1) = k
n = n + 1
For Each x In sd(y)
arr_2(n, 2) = x
j = j + 1
arr_2(n, 1) = k & "." & j
n = n + 1
Next
Next
[d2].Resize(m, 2) = arr_2
End Sub
Объединить два столбца в один в нужном порядке, Объединить два столбца( темы и подтемы) в один. У каждой темы свои уникальные подтемы, подробная инфа ниже
Sub Макрос1()
Dim arr_1, arr_2, n As Integer, m As Integer
Set sd = CreateObject("Scripting.Dictionary")
lr = Cells(Rows.Count, 2).End(xlUp).Row
arr_1 = Range("A2:B" & lr).Value
m = 0
For n = 1 To UBound(arr_1)
If Not sd.Exists(arr_1(n, 1)) Then Set sd(arr_1(n, 1)) = CreateObject("Scripting.Dictionary"): m = m + 1
If Not sd(arr_1(n, 1)).Exists(arr_1(n, 2)) Then sd(arr_1(n, 1)).Add arr_1(n, 2), arr_1(n, 2): m = m + 1
Next
ReDim arr_2(1 To m, 1 To 1)
n = 1
For Each y In sd
arr_2(n, 1) = y
n = n + 1
For Each x In sd(y)
arr_2(n, 1) = x
n = n + 1
Next
Next
[d2].Resize(m, 1) = arr_2
End Sub
Объединить два столбца в один в нужном порядке, Объединить два столбца( темы и подтемы) в один. У каждой темы свои уникальные подтемы, подробная инфа ниже
let
Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
#"Сгруппированные строки" = Table.Group(Источник, {"Тема"}, {{"Итог", each {_[Тема]{0}} & _[Подтема]}}),
#"Развернутый элемент Итог" = Table.ExpandListColumn(#"Сгруппированные строки", "Итог"),
#"Удаленные столбцы" = Table.RemoveColumns(#"Развернутый элемент Итог",{"Тема"})
in
#"Удаленные столбцы
Microsoft Office обнаружил возможное нарушение безопасности. Корпорация Майкрософт заблокировала запуск макросов, так как источник этого файла не является доверенным
Сделайте скрин, что у Вас включено в окне: Параметры Excel --> Центр управления безопасностью --> Параметры управления безопасностью ... --> Параметры макросов
эта тема не раз уже обсуждалась, есть ещё окончания "ин", "ина", "ич" и т.д., а ещё бывают приставки типа "кызы", "улы" и т.п., а также может встречаться двойное отчество
И ещё куча вопросов: 1. В исходных данных, в шапках, будут стоять наименования "НАБОР 1", "НАБОР 2" и т.д.? 2. Наборы всегда будут идти через столбец? 3. После последнего набора будут какие-либо данные? 4. В наборах могут быть пустые строки?