Excel - поиск значений в таблице и заполнение пустых ячеек на основе предыдущих данных - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть следующая таблица, где каждый идентификатор в первом столбце имеет соответствующий фрукт во втором, по большей части в любом случае.

<pre><strong>ID      Fruit</strong><hr>
142     Apple<br>
223     Banana<br>
342     Lemon<br>
223<br>
142     Apple<br>
342<br>
142<br>
462     Apple<br>

Я хочу, чтобы пустые ячейки в столбце Fruit автоматически заполнялись на основе идентификатора в первом столбце.Чтобы добавить поворот, к каждому идентификатору можно прикрепить только ОДИН фрукт, но фрукт может иметь несколько идентификаторов (например, Apple может иметь идентификаторы 142 и 462, но 142 может иметь только значение ЯБЛОКО).

СначалаЭто казалось довольно простой проблемой, но я не могу понять это.Я пробовал IF, VLOOKUP и INDEX & MATCH, но ни один из кодов не сработал, поэтому мне нечего вставить, чтобы показать, где я нахожусь, так как до сих пор никуда не попал.

В то же время я также изучаю решение с использованием VBA, хотя я не настолько знаком с ним, так что это может занять некоторое время.

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

1 Ответ

0 голосов
/ 23 февраля 2019

В C2 эта формула должна работать и перетащить ее вниз:

{=INDEX($B$2:$B$9,MATCH(1,(A2=$A$2:$A$9)*($B$2:$B$9<>0),0))}

Примечание: Это функция массива!

И просто ради другого варианта, используя =AGGREGATE():

=IF(B2=0,INDEX($B$1:$B$9,AGGREGATE(15,3,((($A$1:$A$9=A2)/($A$1:$A$9=A2))*(($B$1:$B$9<>0)/($B$1:$B$9<>0)))*ROW($A$1:$A$9),1)),B2)

Примечание: Он заключен в =IF(), чтобы предотвратить вычислениеслучиться нежелательно

Есть еще больше способов ....:)

...