индекс соответствия вместо использования vlookup - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть два CSV-файла.Первый csv

Id Name Price Description 
1    X    2     lalala
2    Y    4     nanana
3    Z    6     papapa

и другой:

Id   Description 
2     here
6     here 
1     here

Я хочу заменить описание из первого файла csv, если идентификаторы совпадают, если они не совпадают, сохраните предыдущее значение из описания извторой CSV.Я хочу сделать это с помощью функции сопоставления индексов, каков наилучший способ сделать это?

1 Ответ

0 голосов
/ 25 ноября 2018

Для таких запросов лучший способ - это попробовать их самостоятельно, даже если вы сначала потерпите неудачу, но вы узнаете, даже если вы потерпите неудачу или преуспеете, лучший способ состоял бы в том, что вы искали в Интернете поиск индекса и пыталисьреализовать это в ваших данных.

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

Функция соответствия находит значение в диапазоне икогда он это находит;он вернет свою позицию в этом диапазоне (который является относительным номером строки, если мы предоставили диапазон столбца)

Индексная функция может использоваться в этой возвращенной позиции.Мы можем дать индексу диапазон и предоставить ему позицию.Возвращает значение в этом конкретном месте из предоставленного диапазона.Хитрость есть;что в этом случае мы предоставим другой столбец, и он будет возвращать данные из этого столбца

enter image description here

Я собираюсь объяснить одну строку (# 8)все остальные строки одинаковы

  • Результат поиска B8: он использует match () для поиска идентификатора в A8 в диапазоне от A2 до A4, и когда он находит этот диапазон, он возвращает свою позицию втот диапазон, который равен 2
  • Индексный результат C8: он использует функцию index () для извлечения значения в позиции 2 (возвращаемого совпадением в предыдущей строке) из диапазона от D2 до D4, поскольку это будет нанана.верните это.

D8 к D10 - та же самая формула, но объединенная

Формулы в ячейках следующие:

B8: =MATCH(A8,$A$2:$A$4)
C8: =INDEX($D$2:$D$4,B8)
D8: =INDEX($D$2:$D$4,MATCH(A8,$A$2:$A$4))
...