Вопрос: Написание формулы для перечисления всех записей, которые соответствуют сумме транзакций


Я пытаюсь написать формулу, чтобы перечислить 5 элементов GL Line, выделенных желтым цветом в синей ячейке, выделенной желтым цветом, исходя из того, что все они имеют один и тот же «Trans Ref Debit Total». Я могу получить количество совпадений с формулой countif, но я в основном хочу объединить записи GL в строку как таковую:

"GL10_171094 GL10_171096 GL10_171098 GL10_171100 GL10_171102"

Любые подсказки?

Spreadsheet


0
2017-12-19 15:58


Источник


Вам понадобятся Office 365, vba или вспомогательная колонка. Office 365 имеет функцию TEXTJOIN (), в то время как для других потребуется использовать вспомогательный столбец, а затем VLOOKUP. - Scott Craner
Как мне реализовать вспомогательный столбец для помощи с vlookup? Если я использую формулу vlookup или match, она просто предоставит первую запись, т. Е. GL10_171094. - Richard Pullman
Следовательно, необходим вспомогательный столбец, который объединяет значения один за другим, поскольку находит аналогичные записи. В Интернете есть много примеров того, как это сделать. - Scott Craner
Нужен ли вам один ответ или во всех пяти ячейках? Я думаю, что одна линия Concatenate в One Cell. - Rajesh S


Ответы:


Вы также можете использовать этот простой UDF.

Чтобы сохранить его, щелкните правой кнопкой мыши вкладку «Лист», нажмите «Просмотреть код», а затем вставьте этот код в качестве модуля.

Function ConcatenateIf(CriteriaRange As range, Condition As Variant, ConcatenateRange As range, Optional Separator As String = ",") As Variant

Dim xResult As String
On Error Resume Next

If CriteriaRange.count <> ConcatenateRange.count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If

For I = 1 To CriteriaRange.count
    If CriteriaRange.Cells(I).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(I).Value
    End If
Next I

If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If

  ConcatenateIf = xResult

  Exit Function

End Function

NB: Наконец напишите эту Формулу в ячейке B2.

  =ConcatenateIf(C2:C16,C2,A2:A16)

1
2017-12-20 11:18





Вы пишете эту Формулу в синей колонке. Я предполагаю, что это столбец B.

Таким образом, формула в B2

=IF(C2<>C1,CONCATENATE(A2,", ",B2,),"")

Перетащите его до последней строки. С вашими данными вы получаете комбинированное значение в каждой последней строке набора кодов.

Сначала вы попадаете в строку 6, затем с 7 по 9, затем в 14-ю строку.

Надеюсь, это поможет вам.


0
2017-12-20 10:43