Есть ли способ объединить несколько формул в одну

#arrays #excel #vba #excel-formula

#массивы #excel #vba #excel-формула

Вопрос:

ВСЕ:

Я пытаюсь создать общий рабочий лист, который измеряет производительность продавцов за определенный период времени. В дополнение к вычислению количества единиц, цены продажи и прибыли, я пытаюсь подсчитать, сколько новых учетных записей было продано за месяц (в идеале, я хотел бы иметь возможность изменять временные рамки, чтобы я мог вычислять большие периоды времени, такие как квартал, год и т.д.).

По сути, я хочу узнать, был ли клиент продан за 12 месяцев до текущего месяца, и если нет, то я увижу номер клиента и продавца, который их продал.

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

  1. Столбец H (SoldLastYear) — показывает клиентов, которые были проданы за год до текущего месяца: =IF(AND(B2>=(TODAY()-365),B2<(TODAY()-DAY(TODAY()) 1)),D2,"")
  2. Столбец I (SoldNow) — показывает клиентов, которые были проданы в этом месяце, и если они НЕ найдены в столбце H, показать «Новый заказ»: =IFNA(IF(B2>TODAY()-DAY(TODAY()),VLOOKUP(D2,H:H,1,FALSE),""),"New Cust")
  3. Столбец J (NewCust) — если в столбце I отображается «Новый заказ», покажите мне номер клиента: =IF(I2="New Cust",D2,"")
  4. Столбец K (SalesName) — если в столбце I отображается «Новый заказ», покажите мне имя продавца: =IF(I2="New Cust",C2,"")

Пример электронной таблицы

У кого-нибудь есть идея, как я могу сделать это более эффективным? Может ли формула массива работать здесь или она застрянет в цикле, поскольку ссылается на другие строки в том же столбце?

Любая помощь будет оценена!!

РЕДАКТИРОВАТЬ: Вот чего я пытаюсь достичь: вместо:

  1. наличие столбца H, показывающего мне, что было продано за 12 месяцев до 1-го числа текущего месяца (на сегодняшнюю дату: 8/1/19-7/31/20);
  2. Наличие столбца I, показывающего, что было продано в августе 2020 года; и
  3. Столбец I ищет столбец H, чтобы узнать, был ли этот клиент продан в сроки, указанные в столбце H

Я хочу иметь один столбец, который выполняет все три: один столбец, который помечает все продажи, сделанные за последние 12 месяцев с начала текущего месяца (итак, с 8/1/19 по 8/27/20), затем сравнивает продажи, сделанные в текущем месяце (август), с продажами, сделанными до этого, и сообщает мне, когда клиент впервые появляется в текущем месяце, если он не появляется за 12 месяцев до этого -> находит новых клиентов после периода бездействия в 12 месяцев.

  • На самом деле я просто пытаюсь найти способ сделать формулу лучше и потреблять меньше ресурсов. При большом наборе данных три столбца (скопированные несколько раз для разных временных рамок) действительно замедляют работу Excel…

Вот пример конечного результата:

Пример конечного продукта

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

1. Что вы хотите улучшить? Вы возвращаете четыре разных фрагмента информации. Как бы выглядел результат, если бы он был объединен в одну формулу? Каков желаемый результат??

2. В идеале я бы хотел, чтобы столбцы H, I и J были объединены в один столбец. Учитывая размер моей таблицы, мой файл работает медленно. Я ищу способы ускорить навигацию. Я подумал, что предложения по краудсорсингу были хорошей идеей.

3. Можете ли вы объяснить, как будет выглядеть этот объединенный столбец H и J? Обе формулы возвращают значение CustNo. Если вы объедините две формулы в один столбец, как вы узнаете, является ли возвращаемый CustNo новым или существующим? Пожалуйста, смоделируйте желаемый результат. Как это должно выглядеть?? Не беспокойтесь о формуле прямо сейчас.