Страницы: 1
RSS
Сцепит, если в ячейке значение
 
Добрый день,Знатоки!
Помогите пожалуйста написать формулу сцепки название столбца и ячейки по строке, при условии что в ячейки есть значение.
Прилагаю пример, как должно получится.
Пытался сделать через ЕСЛИ по каждой ячейки в строке, но виснит, по факту у меня около 200 столбцов и 15000 строк,
 
в строку 3 (формула массива)
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ОБЪЕДИНИТЬ($B$1;;СЦЕПИТЬ(ЕСЛИ(НЕ(ЕПУСТО(C3:F3));$C$2:$F$2);C3:F3));$B$1 & "ЛОЖЬ";"");"ЛОЖЬ" & $B$1;"")
Изменено: Ігор Гончаренко - 30.01.2020 10:40:55
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
В строке из 200 ячеек сколько может быть заполнено? Максимальное кол-во.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Рандомно раскинуто, не считал, но все заполнены точно

Ігор Гончаренко , у меня не получилось, пишет #ИМЯ?
 
ОБЬЕДИНИТЬ где-то недавно появилась, в 2019 точно работает))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
UDF
Код
Option Explicit

Function CoupleByHead(rHead As Range, rVal As Range, _
                      Optional sDelim$ = "/")
    Dim lc&, res$
    Dim ah, av
    If rHead.Columns.Count <> rVal.Columns.Count Then
        CoupleByHead = CVErr(xlErrValue)
        Exit Function
    End If
    
    ah = rHead.Rows(1).Value
    If Not IsArray(ah) Then
        ReDim ah(1 To 1, 1 To 1)
        ah(1, 1) = rHead.Value
    End If
    av = rVal.Rows(1).Value
    If Not IsArray(av) Then
        ReDim av(1 To 1, 1 To 1)
        av(1, 1) = rHead.Value
    End If
    res = ""
    For lc = 1 To UBound(ah, 2)
        If av(1, lc) <> "" Then
            If res = "" Then
                res = ah(1, lc) & av(1, lc)
            Else
                res = res & sDelim & ah(1, lc) & av(1, lc)
            End If
        End If
    Next
    CoupleByHead = res
End Function

в ячейку записывать так:
=CoupleByHead($C$2:$F$2;C3:F3)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,
БОЛЬШОЕ СПАСИБО!!!!!!!!
Всё ок!
 
Дмитрий(The_Prist) Щербаков,
у меня возникла вот такая ошибка http://prntscr.com/qv2hi3
Подскажите пожалуйста, как поправить?
 
Вот такая - это какая? На скрине просто выделена первая строка функции и ничего более. Притом я функцию тестировал на Вашем файле и она рабочая.

P.S. Не надо писать мне в личку по подобным вопросам.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх