Я застрял в проблеме, касающейся того, как выполнить vlookup для наиболее вероятного совпадения
Теория основы c состоит в том, что у меня есть таблица с бизнес-правилами, например:
| Key1 | Key2 | Key3 | Key4 | ID |
|------|------|------|------|----|
| 1 | 2 | S | | 1 |
| 1 | 2 | R | USD | 2 |
| | 1 | S | | 3 |
| | | S | | 4 |
И таблица транзакций выглядит следующим образом:
| Key1 | Key2 | Key3 | Key4 |
|------|------|------|------|
| 1 | 2 | S | BRL |
| 1 | 2 | R | USD |
| 2 | 2 | S | USD |
| 1 | 1 | S | USS |
Правила, которые я хочу запрограммировать:
- Если одно из совпадений ключей добавляет 1 к вероятности совпадение
- Если один из ключей не совпадает точно, но бизнес-правило пусто, следуйте, добавьте 0
- Еще вычтите 1000 (Никогда не используйте правило с несовпадающими ключами)
Как бы вы, ребята, запрограммировали эту функцию sudo vlookup?
Большое спасибо за помощь, вот мой пример результата таблицы
Для строки 1 таблицы транзакций наиболее вероятна Идентификатор правила: 1
строка 1 1 == 1> + 1, 2 == 2> + 1, S == S> +1, ключ 4 пуст>> 0, общее сходство правил = 3
строка 2 1 == 1> + 1, 2 == 2> + 1, R! = S> -1000, USD == USD> + 1, общее сходство правил = -997
строка 3 Ключ 1 это emp ty> + 0, 1! = 2> - 1000 ...
строка 4 S == S> +1, общее сходство правил = 1
Для всей таблицы совпадений
| ID | Most Likely match |
|----|-------------------|
| 1 | 1 |
| 2 | 2 |
| 3 | 4 |
| 4 | 3 |
Спасибо за внимание