Я работаю на 2 таблицы.

"Таблица 1" - это список текущих документов, которые я импортирую и хочу оставить без изменений. Файл не отформатирован никак.

Таблица 2 - это список клиентов, с которыми я работаю, и таблица Excel.

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

То, что я попробовал, было:

Column F - Due dates
Column A - Customer number
Column C - Document type 

{=MIN(IF([Documents.XLSX]Sheet1!$F$2:$F$30000>TODAY();[Documents.XLSX]Sheet1!$F$2:$F$30000))}

Что дало мне общую ближайшую дату, которая была за один день, но она была взята из всех документов от всех клиентов, что не является удовлетворительным.

Я тогда попытался добавить второе условное желание отфильтровать только счета

{=MIN(IF(AND([Documents.XLSX]Sheet1!$C$2:$C$30000="INVOICE";[Documents.XLSX]Sheet1!$F$2:$F$30000>TODAY());[Documents.XLSX]Sheet1!$F$2:$F$30000))}

Чем, к сожалению, все стало шатко.

Конечно, я мог бы добавить третье условие с номерами клиентов, но это все равно не сработало бы.

{=MIN(IF(AND([Documents.XLSX]Sheet1!$C$2:$C$30000="INVOICE";[Documents.XLSX]Sheet1!$F$2:$F$30000>TODAY();[Documents.XLSX]Sheet1!$F$2:$F$30000=[@CustomerNumber]);[Documents.XLSX]Sheet1!$F$2:$F$30000))}

Я также попытался обойти с помощью функции в форме чего-то похожего на это:

=INDEX(AD3:AD9;MATCH(1;INDEX((AG3=AA3:AA9)*(AG4=AB3:AB9)*(AG5=AC3:AC9);0;1);0))

В которых AD являются значениями AG, являются входными данными, AA AB и AC являются различными массивами для условий (таких как типы документов, имя клиента и т.д.) Поскольку первые два условия могут выглядеть как AG3 и AG4, я предполагаю, что последнее условие должно быть сформулировано по-разному таким образом, чтобы диапазон входных данных был также диапазоном для вывода.

Пример:https://i.stack.imgur.com/S8HCs.png

Теперь в этом примере формула для Боба должна вернуть значение 30.10.2018, так как это ближайший счет на сегодня. Хотя для Джона это ничего не должно возвращать, так как его счет уже просрочен.

РЕДАКТИРОВАТЬ: В конце концов мне удалось выяснить это самостоятельно. Публикация полученной формулы для тех, кто может наткнуться на эту тему в будущем:

{=MIN(IF(([Documents.XLSX]Sheet1!$C$2:$C$30000="Invoice")*([Documents.XLSX]Sheet1!$F$2:$F$30000>TODAY())*(TEXT([@Customer];0)=[Documents.XLSX]Sheet1!$A$2:$A$30000);[Documents.XLSX]Sheet1!$F$2:$F$30000))}

Это формула массива, так что, конечно, Ctrl + Shift + Enter

Однако, если у кого-то есть идея, как получить одинаковые результаты с помощью комбинации индекс-совпадение, я был бы более чем счастлив узнать.

1 ответ1

0

Вы можете добавить промежуточную сводную таблицу с ...

  • номера накладных в "строке меток"
  • сроки выполнения в области "значения".

Убедитесь, что для параметров поля значения установлено значение "Макс", чтобы для каждого номера счета-фактуры вы извлекали самую последнюю дату оплаты.

Затем вы можете просмотреть их с помощью "vlookup" в вашей таблице интересов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .