EXCEL: есть ли функция / способ, который работает как LOOKUP, но принимает массив в качестве входных данных и возвращает массив в качестве результатов - PullRequest
0 голосов
/ 21 мая 2018

Есть ли в электронной таблице Google способ получить несколько значений массива взамен массива входных значений?

Я прилагаю изображение с примером того, что нужно.

По сути, нужно что-то вроде: = LOOKUP (input_array, range_with_ID_values, range_with_return_values), который возвращает массив «result_array», который имеет массив значений, совпадающих со значениями из «input_array»

Пожалуйста, помогите!Kaustubh want a f() that works like: '=f(input,range with IDs and colors)' retrns array the return box

РЕДАКТИРОВАТЬ: Как комментарий предложил, я разрабатываю, почему мне это нужно.Я хочу проверить, все ли зависимые задачи выполнены.если да, то эта «зависимая задача» должна быть открыта для выполнения.Прикрепление изображения для описания сценария ниже

щелкните, чтобы увидеть пример

На этом изображении, пока задачи 1,2,3 не «завершены», задача 4 будетвсегда быть «в ожидании зависимости».Как только все задачи 1, 2, 3 завершены, он изменится на Ожидание

Также обратите внимание, что задачи не нужно сериализовать.Между ними могут быть задачи, которые не имеют отношения к задаче, для которой нам необходимо обновить статус.Например.могут быть такие задачи, как «купить продуктовый магазин», «убить тараканов» и т. д., от которых «вода завода» не зависит

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

В Excel рассмотрим следующую пользовательскую функцию:

Public Function MultiReturn(rng As Range, inputs As String) As String
    Dim arry1, a, outstr As String, i As Long, arry2
    arry1 = Split(Mid(inputs, 2, Len(inputs) - 2), ",")
    outstr = "{"

    arry2 = rng
    For Each a In arry1
        For i = LBound(arry2, 1) To UBound(arry2, 1)
            If CStr(a) = CStr(arry2(i, 1)) Then outstr = outstr & arry2(i, 2) & ","
        Next i
    Next a

    MultiReturn = Mid(outstr, 1, Len(outstr) - 1) & "}"
End Function

Например:

enter image description here

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

0 голосов
/ 21 мая 2018

Использование TEXTJOIN в качестве формулы массива

=TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH("," & A2:A9 & ",","," & D3 & ",")),B2:B9,""))

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.Если все сделано правильно, Excel поместит {} вокруг формулы.

enter image description here

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