2015-03-23 7 views
0

Im с помощью Excel 2010 и иметь технический паспорт с несколькими вкладками, это текущая функция SUMIF, что я используюExcel Получить текущую строку из 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 i, тогда вы хотите использовать эти строки, которые имеют значение 1, но используют другой столбец внутри этой строки для заполнения истинного условия.

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

Возможно ли это?

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

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

EDIT:

Я теперь удалось получить функцию рабочего, однако его немного первенствовать взламывать, потому что я должен был переместить столбцы вокруг в основных данных и его немного неаккуратно сейчас все равно Вот что у меня

=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),"") 

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

ответ

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)),"") 
+0

Работал отлично, спасибо за вашу помощь извините за поздний ответ! – user3456401

+0

Сделали по запросу. У меня сейчас есть еще одна небольшая проблема, когда я использую = IF (SUMIF («Основные данные»! $ 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 Извините, если это очень запутанно – user3456401

+0

Не могли бы вы создать другой хорошо сформулированный и отформатированный вопрос для этого?Трудно объяснить это здесь в разделе комментариев, но я думаю, что понимаю, чего вы хотите достичь. – ZygD