Excel Получить текущую строку из инструкции sumif

Я использую Excel 2010 и имею таблицу данных с несколькими вкладками, это текущая функция sumif, которую я использую

 =IF(SUMIF('Master Data'!$J$2:$J$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,Current_row_different column, "")

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

Скажем, например, строка 4 содержит 1 в столбце A. Затем я хочу остаться в строке 4, но получить значение столбца B для истинного условия.

Это возможно?

Любые предложения высоко ценятся

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Теперь мне удалось заставить функцию работать, однако это немного взломано Excel, потому что мне пришлось перемещать столбцы в основных данных, и в любом случае это немного беспорядочно, вот что у меня есть

 =IF(SUMIF('Master Data'!$C$2:$C$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,VLOOKUP(B22,'Master Data'!$C$2:$F$90,3,FALSE),"")

Теперь я знаю, что это связано с тем, что VLookup выполняет поиск по первому указанному столбцу, и, похоже, он вообще не работает, если я пытаюсь указать диапазон в обратном порядке, то есть $F$90:$C$2 вместо $C$2:$F$90. Есть ли способ манипулировать VLOOKUP, чтобы он работал так?


person user3456401    schedule 23.03.2015    source источник


Ответы (1)


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

В основном, эта часть вашей формулы:

VLOOKUP(B22,'Master Data'!$C$2:$F$90,3,FALSE)

будет изменено с этим:

INDEX('Master Data'!$E$2:$E$90,MATCH(B22,'Master Data'!$C$2:$C$90,FALSE))

Итак, в конце концов, эквивалент для

=IF(SUMIF('Master Data'!$C$2:$C$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,VLOOKUP(B22,'Master Data'!$C$2:$F$90,3,FALSE),"")

было бы

=IF(SUMIF('Master Data'!$C$2:$C$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,INDEX('Master Data'!$E$2:$E$90,MATCH(B22,'Master Data'!$C$2:$C$90,FALSE)),"")
person ZygD    schedule 23.03.2015
comment
Работает отлично большое спасибо за вашу помощь извините за поздний ответ! - person user3456401; 24.03.2015
comment
Сделали как там просили. Теперь у меня есть еще одна небольшая проблема, когда я использую =IF(СУММЕСЛИ('Основные данные'!$C$2:$C$200,'Представление ресурсов (2)'!B22,'Основные данные'!$W $2:$W$200)›0,INDEX('Основные данные'!$E$2:$E$90,MATCH(B22,'Основные данные'!$C$2:$C$90,FALSE)),) C — это человек имя в сводной таблице, а иногда есть несколько экземпляров этого имени, и тогда индекс возвращает только первый найденный результат. У меня есть флаг, установленный на 1 в столбце W, когда это строка, которую я хочу, в любом случае, чтобы соответствовать только строкам, где столбец W = 1 или 1, как указано в sumif Извините, если это очень запутанно - person user3456401; 25.03.2015
comment
Не могли бы вы создать для этого еще один хорошо сформулированный и отформатированный вопрос? Трудно объяснить это здесь, в разделе комментариев, но я думаю, что понимаю, чего вы хотите достичь. - person ZygD; 25.03.2015
comment
Вероятно, нужно было сделать это для начала, вот ссылка на новый вопрос, спасибо еще раз stackoverflow.com/questions/29259140/ - person user3456401; 25.03.2015