Найти адрес (ячейка / строка) для функции COUNTIFS - PullRequest
0 голосов
/ 25 июня 2018

У меня есть файл Excel с большим количеством функций COUNTIFS (выше 300). Формулы работают нормально, но мне нужно найти адрес для каждого результата COUNTIFS, так как источник данных очень большой.

т.е. если COUNTIFs дает мне результат 1 для выбранных параметров, мне нужно знать, какая ячейка / строка рассчитывает функция из источника данных.

Я думал, что это можно сделать с помощью функции ADDRESS, но я не уверен, как это можно использовать вместе с COUNTIFS.

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Предполагая, что строки вашего критерия выровнены, вы можете найти строки, которые входят в число.Ссылаясь на изображение ниже, введите его как формулу массива ( Ctrl + Shift + Enter ) в области с тем же количеством строк, что и COUNTIFSвернул (я ввел формулу в H2:H4 на изображении):

=SMALL(IF(((A2:A11=F1)+(B2:B11=F2)+(C2:C11=F3))=3,ROW(A2:A11)),ROW(INDIRECT("1:"&F4)))

enter image description here

0 голосов
/ 25 июня 2018

Я бы пошел с пользовательской функцией.

Используя приведенный ниже код, вы получите такой результат: enter image description here

Public Function ListAddresses(SearchTerm As Variant, SearchRange As Range) As String
    Dim WS As Worksheet, rCell As Range

    Set WS = Sheets(SearchRange.Parent.Name)
    SearchTerm = UCase(SearchTerm)

    Set SearchRange = Intersect(WS.UsedRange, SearchRange)

    For Each rCell In SearchRange.Cells
        If UCase(rCell.Value) = SearchTerm Then
            ListAddresses = ListAddresses & rCell.Address(False, False) & " | "
        End If

    Next rCell

    If ListAddresses <> "" Then
        ListAddresses = Left(ListAddresses, Len(ListAddresses) - 3)
    Else
        ListAddresses = "<none>"
    End If

End Function
0 голосов
/ 25 июня 2018

Попробуйте,

=ADDRESS(AGGREGATE(15, 7, ROW(C$3:INDEX(C:C, MATCH(1E+99, C:C)))/(C$3:INDEX(C:C, MATCH(1E+99, C:C))=1), ROW(1:1)), COLUMN(B:B), 4, 1, "Shett4")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...