Извлечение значений из ячеек на основе соответствующего значения ячейки

#excel #vba #excel-formula

#Excel #vba #Excel-формула

Вопрос:

Я пытаюсь извлечь значения из предыдущих строк на основе значения, которое указано в следующих столбцах.

Как и в следующем примере (пояснительное изображение таблицы), в ячейке A2 значение ячейки равно 10 (выделено зеленым цветом), соответствующее значение в ячейке D2 равно 3 (выделено красным цветом), поэтому значение, требуемое в ячейках E2, E3 и E4, представляет собой значения ячеек A3, A4 и A5, которые являются A-1111, B-2222, C-3333 после удаления текста «SLR #» соответственно. И в случае ячейки A6 соответствующее значение в ячейке D6 равно 2, поэтому требуемое значение в ячейках E6 и E7 будет D-4444 и E-5555.

Непрерывные данные, подобные этому, и формула или код VBA будут соответствовать моим требованиям в столбце E. Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения. Заранее спасибо…

Пояснительная таблица:

введите описание изображения здесь

Я попробовал следующую пользовательскую функцию, но она выдает мне все значения в одной ячейке, а не в следующей ячейке. (Спасибо Mr. Fluff за этот UDF)

 Function UDF(Rng As Range, Rws As Long) As String
   Dim i As Long
   Dim Cl As Range

   For Each Cl In Rng
      If Left(Cl, 4) = "SLR#" Then
         UDf = UDF amp; Cl.Value
         i = i   1
         If i = Rws Then Exit For
      End If
   Next Cl
   UDF = Trim(Replace(fiberboysa, "SLR#", ""))
End Function
 

Ответ №1:

Я мог бы упростить это, но если данные ВСЕГДА структурированы таким образом, попробуйте эту формулу…

 =IF(D3<>"","",IF(ISBLANK(A3),"",A3))
 

… скопируйте это в ячейку E2 и заполните.

введите описание изображения здесь

Я рад, если это не поможет вам, но это сработало с простым примером, который вы привели.

Комментарии:

1. Он работает только один раз. Например, если в столбце D есть 3, это приведет только к одному значению из столбца A, но мне нужно 3 текущих значения в столбце E.

2. @Accounts-Loves-Code, и вы заполнили формулу? Если это работает только один раз, я предполагаю, что вы никогда не заполняли его. Я обновил свой ответ скриншотом, показывающим, что он работает. Если это не делает это для вас, то я явно чего-то не хватает. Мне нужно было бы увидеть результат, о котором вы говорите, когда вы применяете mt answer.

3. Ага!!! Готово. На самом деле мои данные очень большие, поэтому я добавил еще несколько IFS, поэтому они не работали. Я исправил это, и теперь оно работает. Еще раз спасибо, дорогой!!!