Вернуть единственное не-FALSE значение в массиве - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть следующий массив: {FALSE; FALSE; FALSE; "$ D $ 3"; FALSE}.Существует только одно ненулевое значение.Есть ли формула, которую я могу использовать в этом массиве, чтобы вернуть это значение (здесь «$ D $ 3»)?

Я пробовал max, min, sum, но, поскольку это не числовое значение, оно не работает.

Спасибо!

Ответы [ 4 ]

0 голосов
/ 13 сентября 2018

Предполагается, что одна не-ЛОЖНАЯ запись является текстовой, а не числовой:

=LOOKUP(REPT("z",255),Rng)

Замените Rng на нужный массив.

С уважением

0 голосов
/ 13 сентября 2018

Вы можете использовать функцию LOOKUP:

=LOOKUP(2,1/({FALSE;FALSE;FALSE;"$D$3";FALSE}<>FALSE),{FALSE;FALSE;FALSE;"$D$3";FALSE})
  • (array<>FALSE) возвращает массив {TRUE;FALSE...} в зависимости от условия
  • 1/(…) преобразует это в массив {1;DIV/0;...}
  • LOOKUP(2,1/(…),orig_array) вернет последнюю позицию в исходном массиве, которая не была ложной.

enter image description here

0 голосов
/ 13 сентября 2018

Если ваш массив находится в столбце , используйте что-то вроде:

=INDEX(A:A,MATCH("*",A1:A5,0))

enter image description here

0 голосов
/ 13 сентября 2018

Используйте цикл:

Sub dural()
    arr = Array(False, False, False, "$D$3", False)
    For Each a In arr
        If a <> False Then
            MsgBox a
        End If
    Next a
End Sub

enter image description here

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