2

Я ищу что-то похожее на этот трюк для конкатенации диапазона с разделителем, но я хочу, чтобы вывод включал специальный символ в элемент в диапазоне, который предназначен для этой строки.

Например, начиная с этого:

Fruit      #
------------
Apples   100
Oranges   80
Pears     50

...Я хочу формулу, которая может создать строку, как это:

Fruit      #             Output
------------------------------------------
Apples   100   >Apples -- Oranges -- Pears
Oranges   80   Apples -- >Oranges -- Pears
Pears     50   Apples -- Oranges -- >Pears

Этот пример сильно упрощен ... моя настоящая проблема состоит из сотен строк, ее нужно многократно повторять для многих листов, и она касается создания входных данных с точной спецификацией для другой программы, но суть проблемы та же. Что-то, что может автоматизировать вывод в простом примере выше, решит мою более сложную проблему.


Я полагаю, что хочу, я хочу что-то вроде =TRANSPOSE(A1:A10)&IF($THIS=A2," -- >"," -- ") где $THIS как-то указывает элемент в массиве, который просматривается, когда F9 оценивает это ... что-нибудь подобное возможно?

1 ответ1

1

Используя VBA:

Public Function markitem(itemrange As Range, item As String)
    markitem = ""
    i = 0
    itemlength = itemrange.Rows.Count
    result = ""
    For i = 1 To itemlength
        actualitem = itemrange.item(i)
        If actualitem = item Then
            actualitem = "<" & actualitem
        End If
        result = result & actualitem & " -- "
    Next i
    If i <> 0 Then
        markitem = Left(result, Len(result) - 3)
    End If   
End Function

Предположим, ваши данные начинаются в ячейке A1 затем в ячейке C1 вы должны поместить =markitem($A$1:$A$3;A1) и скопировать формулу в столбец C.

Чтобы использовать этот код, перейдите в Macros / VBA, вставьте новый модуль в ThisWorkbook и вставьте код с правой стороны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .