Моя трудность заключается в создании правильной структуры предложения с компонентами предложения. В частности, когда Excel должен использовать « и » или « , » (запятая).

Я создаю автоматизированный отчет с использованием Excel. Я построил электронную таблицу, в которой рассматриваются регионы (10+) и проекты, которые у них всех есть (проекты от A до F), а затем заполняю таблицу для каждого региона, сообщая, увеличился или уменьшился проект или нет изменений.

Мне удалось создать формулу, которая правильно размещает ',' и 'и', но только если в моих предложениях представлено более 2 проектов. К сожалению, это не удается, если там 2 ..

Ниже приведен пример таблицы.

Я нажал в H7, чтобы показать структуру формулы. Это работает при обращении к столбцу G, но не при обращении к столбцу E или I.

Пример таблицы

Мой отчет будет включать формулу объединения, которая будет просто указывать на

concatenate(D3,E3,D4,E4,D5,E5,D6,E6,D7,E7,D8,E8)

который должен создать:

  • «Для Района 1 мы наблюдаем увеличение Проекта А и Проекта D.

  • «Произошло сокращение в проектах C , E и

  • "В проекте B нет изменений".

Я изо всех сил пытаюсь понять, как включить «и», если есть только 2 записи.

Любые указатели с благодарностью.

Спасибо

Майкл.

2 ответа2

1

используя VBA

имена проектов не могут содержать запятую ','

Function mCombine(mRange As Range) As String
    Dim mResult As String, mSize As Long

    For Each mCell In mRange
        If mCell <> "" Then mResult = mResult & mCell & " , "
    Next mCell

    mResult = Left(mResult, Len(mResult) - 3)
    mSize = Len(mResult) - (Len(Split(mResult, ",")(UBound(Split(mResult, ",")))) + 1)

    mCombine = Left(mResult, mSize - 1) & Replace(mResult, ",", "and", mSize)
End Function
1

Трудно сказать, но я думаю, что ваш пример также сломается для любого предложения из 4 или более проектов.

Вы можете попробовать объединить все имена проектов с запятой и пробелом, а затем использовать SUBSTITUTE(haystack, needle, newvalue, n-th instance)

Если у вас нет запятой в конце, тогда n-й экземпляр будет числом проекта, а не единицей. Если у вас всегда есть запятая, просто обрежьте ее заранее.

Итак: объединить, обрезать завершающую запятую, если необходимо, заменить последнюю запятую на "и", а затем поставить префикс «там было ...»

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