3

У меня есть таблица, которая будет по умолчанию со значениями "Нет". Со временем эти значения будут изменены на "Да".

Мне нужна формула (нет VB, пожалуйста, VB для меня бесполезна), которая даст мне номер строки последнего "Да" в диапазоне ячеек, чтобы я мог найти значение в этом номере строки другого столбца, чтобы получить текст для отображения.

Допустим, у меня есть это в одном столбце (назовите это 1):"Да", "Да", "Да", "Нет", "Нет"

И это в ссылочной колонке (назовите это 2)1, 1, 2, 2, 3

Когда все сказано и сделано, INDIRECT(THE_FORMULA_HERE, 2) должен вернуть мне значение "2". И когда все "Да" будут помещены, оно изменится на "3" и т.д.

3 ответа3

3

Предполагая, что данные являются смежными (то есть «Да, Да, Да, Нет, Нет», но не «Да, Да, Нет, Да, Нет»), вы можете использовать следующую формулу:

=INDIRECT("B" & (COUNTIF(A2:A6, "Yes")+1))

Вот данные, которые я использовал:

   | A      B
---------------
 1 | Yes    1
 2 | Yes    1
 3 | Yes    2
 4 | No     2
 5 | No     3

Есть и другие способы сделать это , если вы можете добавить столбец последовательности, а затем использовать COUNTIF и VLOOKUP , чтобы сделать то же самое.

2

Приведен пример столбца E, содержащий следующее:

  Row#  Value

     1. Yes
     2. No
     3. Yes
     4. Yes
     5. Yes
     6. Yes
     7. No
     8. No
     9. Yes
     10. No

Вы можете использовать так называемую формулу Array, чтобы выполнить это очень легко. В этом примере вы должны ввести формулу =MAX(ROW(E1:E10)*IF(E1:E10="Yes",1,0)) и нажать CTRL+SHIFT+ENTER, чтобы ввести формулу в виде формулы массива Excel добавит {} вокруг внешней части формулы, чтобы указать, что это формула массива.

1

Я бы использовал INDEX, а не INDIRECT, поскольку он энергонезависимый, но концепция была бы почти идентична, если бы все ответы «Да» были смежными и не разделялись на «Нет».

=INDEX(B1:B100,COUNTIF(A1:A100,"Yes"))

С заменой 100 на сколько у вас действительно строк

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .