Страницы: 1
RSS
Собрать через точку только непустые ячейки по строке
 
 

Добрый день! Очень нужна ваша помощь. Есть таблица из 12 столбцов. В строке есть пустые и заполненные ячейки. Нужно вывести результат по каждой строке так, чтобы заполненные ячейки имели присвоенный в шапке таблицы номер, а пустые ячейки отображались нулями… Например: 00.00.03.00.05.06.00.00.00.00.00.00    т.е. из 12 столбцов не пустые 3, 5 и 6. Или, например: 2-й вариант попроще: из 12 столбцов не пустые 3, 5 и 6 => 03.05.06

 
Изменено: lomaxx - 28.10.2019 16:07:50
 
lomaxx, https://www.planetaexcel.ru/techniques/7/205/
Не бойтесь совершенства. Вам его не достичь.
 
Код
Sub pust()
Dim lc As Long
Dim rng1 As String
Dim rng2 As String
Dim rng3 As String
Dim rng4 As String

lc = Worksheets("Лист1").Cells(4, Columns.Count).End(xlToLeft).Column
rng1 = Cells(14, lc).Value
For a = 2 To lc - 1

  If Cells(14, a) <> "" Then
    rng1 = rng1 & "." & Cells(13, a)
  Else: GoTo Line1
  End If
Line1:
Next
Cells(14, lc).Value = rng1
If Left(Cells(14, lc), 1) = "." Then Cells(14, lc) = Right(Cells(14, lc), Len(Cells(14, lc)) - 1)

rng2 = Cells(15, lc).Value
For a = 2 To lc - 1

  If Cells(15, a) <> "" Then
    rng2 = rng2 & "." & Cells(13, a)
  Else: GoTo Line2
  End If
Line2:
Next
Cells(15, lc).Value = rng2
If Left(Cells(15, lc), 1) = "." Then Cells(15, lc) = Right(Cells(15, lc), Len(Cells(15, lc)) - 1)

rng3 = Cells(19, lc).Value
For a = 2 To lc - 1

  If Cells(19, a) <> "" Then
    rng3 = rng3 & "." & Cells(18, a)
  Else: rng3 = rng3 & ".00"
  End If
Next
Cells(19, lc).Value = rng3
If Left(Cells(19, lc), 1) = "." Then Cells(19, lc) = Right(Cells(19, lc), Len(Cells(19, lc)) - 1)

rng4 = Cells(20, lc).Value
For a = 2 To lc - 1

  If Cells(20, a) <> "" Then
    rng4 = rng4 & "." & Cells(18, a)
  Else: rng4 = rng4 & ".00"
  End If
Next
Cells(20, lc).Value = rng4
If Left(Cells(20, lc), 1) = "." Then Cells(20, lc) = Right(Cells(20, lc), Len(Cells(20, lc)) - 1)

End Sub
 
Цитата
Mershik написал:
https://www.planetaexcel.ru/techniques/7/205/
К сожалению это не совсем то, что нужно. По сути там сцепка с условиями. Да, мне нужна сцепка, но с заменой пустых ячеек на 00. И заполненных ячеек - замена на наименование шапки данного столбца
 
lomaxx, так вам нужно и значение ячейки изменить и в результат вывести или только в результат вывести?
 
Цитата
Hellmaster написал:
так вам нужно и значение ячейки изменить и в результат вывести или только в результат вывести?
Да, верно. В ячейке по строке может быть всё что угодно. А результат должен выводиться по столбцу шапки таблицы... т.е. если по столбцу "В" в шапке данного столбца стоит 01, то должно браться 01. и т.д. аналогично.
столбец А - пусто                 (в шапке присвоено 00)
столбец В - есть значение  (в шапке присвоено 01)
столбец С - пусто                 (в шапке присвоено 02)
столбец D - есть значение  (в шапке присвоено 03)
столбец E - пусто                 (в шапке присвоено 04)

В итоге должно быть- 01.03
Изменено: lomaxx - 28.10.2019 16:59:17
 
Я даже кнопочку добавлю
 
lomaxx, так тема названа как?!
Цитата
lomaxx написал:
Собрать через точку только непустые ячейки по строке
вот ответ на Ваш вопрос  
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
так тема названа как?!
Ну так ведь компактно хотел написать
 
Цитата
Hellmaster написал:
Я даже кнопочку добавлю
Спасибо. Именно так как я хотел. Но за исключением кнопочки )... Люди должны просто видеть результат


Цитата
Mershik написал:
вот ответ на Ваш вопрос  
Да, спасибо. Вы всё правильно поняли. Извиняюсь за некорректную тему )
 
lomaxx,
знакома ли Вам эта статья?
3 способа склеить текст из нескольких ячеек

Посмотрите решение на базе формул-массива (вводятся одновременным нажатием клавиш CTRL+SHFT+ENTER вместо просто ENTER)
 
Цитата
IKor написал:
знакома ли Вам эта статья?
да, спасибо, читал


Цитата
IKor написал:
Прикрепленные файлы
Спасибо! Теперь у меня куча вариантов на любой вкус )
Страницы: 1
Наверх