Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Вирішення реальних задач пошуку | Розширені системи пошуку та реляційне моделювання
Формули Excel

Вирішення реальних задач пошуку

Свайпніть щоб показати меню

Точні збіги корисні для реляційних моделей, але багато бізнес-систем використовують діапазони та порогові значення замість фіксованих величин. У цьому розділі використовується приблизний пошук для побудови логіки цінових рівнів і динамічних розрахунків знижок.

Приблизний збіг із XLOOKUP

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], -1)
  • lookup_value: значення для оцінки;
  • lookup_array: порогові значення;
  • return_array: повернуте значення;
  • -1: повертає найбільше значення, яке менше або дорівнює шуканому значенню.

Для приблизного пошуку масив для пошуку має бути відсортований за зростанням.

Логіка рівнів

Таблиці рівнів визначають мінімальні пороги замість точних збігів.

Приклад:

Min_UnitsDiscount_Rate
10%
55%
1010%
2015%

Excel визначає, куди значення Units потрапляє у структуру порогів, і повертає відповідну ставку знижки.

Крок 1 Створення таблиці цінових рівнів
expand arrow

Створіть новий аркуш із назвою:

Pricing_Tiers

Додайте наступний набір даних:

Min_Units;Discount_Rate
1;0%
5;5%
10;10%
20;15%

Перетворіть набір даних на таблицю Excel.

Переконайтеся, що Min_Units відсортовано за зростанням.

Крок 2 Побудова пошуку знижки
expand arrow

У Sales_Data створіть новий стовпець із назвою:

Discount_Rate

У першому рядку введіть:

=XLOOKUP([@Units],Pricing_Tiers[Min_Units],Pricing_Tiers[Discount_Rate],0,-1)
  • [@Units]: значення Units поточного рядка;
  • Pricing_Tiers[Min_Units]: стовпець порогів;
  • Pricing_Tiers[Discount_Rate]: повернуте значення знижки;
  • 0: значення за замовчуванням;
  • -1: режим приблизного пошуку.

Відформатуйте результати як відсотки.

Крок 3 Побудова доходу зі знижкою
expand arrow

Створіть новий стовпець із назвою:

Discounted_Revenue

У першому рядку введіть:

=[@Revenue]*(1-[@Discount_Rate])
  • [@Revenue]: початкове значення Revenue;
  • [@Discount_Rate]: застосований відсоток знижки.

Розрахунок тепер динамічно змінюється залежно від обсягу одиниць.

Крок 4 Перевірка динамічного оновлення рівнів
expand arrow

Змініть значення у Pricing_Tiers.

Переконайтеся, що всі залежні розрахунки оновлюються автоматично.

Крок 5 Оновлення логіки топ-продукту
expand arrow

Замініть попередню формулу для топ-продукту на:

=XLOOKUP(MAX(Sales_Data[Discounted_Revenue]),Sales_Data[Discounted_Revenue],Sales_Data[Product],"Not found")

Тепер пошук оцінює ефективність із урахуванням знижки, а не лише Revenue.

Крок 6 Створення секції зворотного пошуку
expand arrow

На аркуші Summary створіть секцію для введення:

Order_ID
Крок 7 Отримання інформації про клієнта
expand arrow

У клітинці для результату пошуку введіть:

=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Customer_ID],"Not found")
  • M2: введений Order_ID;
  • Sales_Data[Order_ID]: стовпець для пошуку;
  • Sales_Data[Customer_ID]: повернуте значення.
Крок 8 Отримання інформації про продукт
expand arrow

В іншій клітинці для результату введіть:

=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Product],"Not found")

Тепер формули динамічно отримують деталі транзакції за вибраним Order_ID.

Крок 9 Перевірка динамічного пошуку
expand arrow

Змініть значення у M2.

Переконайтеся, що:

  • Значення клієнта оновлюються автоматично;
  • Значення продукту оновлюються автоматично;
  • Формули завжди повертають відповідну транзакцію.

1. Що робить match_mode = -1 у XLOOKUP?

2. Чому масив для пошуку повинен бути відсортований при використанні приблизного співпадіння?

3. Чим XLOOKUP зручний для зворотного пошуку?

question mark

Що робить match_mode = -1 у XLOOKUP?

Виберіть правильну відповідь

question mark

Чому масив для пошуку повинен бути відсортований при використанні приблизного співпадіння?

Виберіть правильну відповідь

question mark

Чим XLOOKUP зручний для зворотного пошуку?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 3
some-alt