Страницы: 1
RSS
Из столбца с названием предприятия и несколькими его адресами извлечь с повтором название предприятия., Помощь при обработке данных Excel/Данные таблицы Excel
 
добрый день .
Прошу помочь в ситуации ниже .
Есть таблица с данными (Таблица 1 ) - надо привести ее в такой порядок (таблица 2 ) .
В ручную долго так как данных много .
Нужно для удобства фильтрации ( по наименованию и\или по городу )

Заранее спасибо.  
 
Выделите ячейки, запустите макрос.
Код
Sub myFill()
    ActiveSheet.Copy
    
    Dim rr As Range
    Set rr = Intersect(Selection, ActiveSheet.UsedRange)
    
    Selection.EntireColumn.Columns(1).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Dim rb As Range
    Dim cl As Range
    For Each cl In rr.Columns(1).Cells
        Debug.Print cl.Value
        If cl.Font.Bold Then
            Set rb = cl
        End If
        If Not rb Is Nothing Then
            rb.Copy cl.Offset(, -1)
        End If
    Next
    rb.Offset(, -1).EntireColumn.AutoFit
End Sub
 
Добрый. Такой себе вариант, но на примере сработал.
Код
=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК({"ул,":"пер,":"пр-т,":"б-р,"};B2)));A1;B2)
Изменено: Максим В. - 27.03.2024 19:18:17
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Матросы и Максимы придумывают название теме. А то я не понял в чем проблема.

Помощь скрыта.
По вопросам из тем форума, личку не читаю.
 
Из столбца с названием предприятия и несколькими его адресами извлечь с повтором название предприятия.
БМВ, так пойдёт?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Здравствуйте. Результат будет на новом листе.
Код
Sub FixTable()
    Dim lastRow As Long, i As Long, rngTemp As Range, newWsh As Worksheet
    lastRow = Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
    Set newWsh = ActiveWorkbook.Worksheets.Add(After:=Worksheets("Лист1"))
    Application.ScreenUpdating = False
    For i = 1 To lastRow
        If Worksheets("Лист1").Cells(i, 1).IndentLevel = 0 Then
            Set rngTemp = Worksheets("Лист1").Cells(i, 1)
        End If
        If Worksheets("Лист1").Cells(i, 1).IndentLevel = 0 Then
            rngTemp.Copy Range(newWsh.Cells(i, 1), newWsh.Cells(i, 2))
        ElseIf Worksheets("Лист1").Cells(i, 1).IndentLevel = 1 Then
            rngTemp.Copy newWsh.Cells(i, 1)
            Worksheets("Лист1").Cells(i, 1).Copy newWsh.Cells(i, 2)
        End If
    Next i
    newWsh.Cells.EntireColumn.AutoFit
    Application.ScreenUpdating = True
End Sub
Изменено: DANIKOLA - 27.03.2024 19:21:58
 
достаточно номера дома :-)
=IF(COUNTIF(A2;"* д.*");B1;A2)
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх