Excel - Найти документ заданного типа с ближайшей датой

381
Marcin

Я работаю на 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

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

0
такое содержимое $ C $ 2: $ C $ 30000 совпадает с данными AD3: AD9? Потому что рассуждения (обеих формул), кажется, трудно связать .. || Я думаю, что обмен некоторыми образцами данных поможет прояснить ситуацию. p._phidot_ 6 лет назад 0
Нет. Вторую функцию я обнаружил в интернете, но понятия не имел, как на самом деле применить ее к данным. https://exceljet.net/formula/index-and-match-with-multiple-criteria Marcin 6 лет назад 0
Добро пожаловать в Super User, и спасибо за закрытие цикла по вашему вопросу. Сайт опирается на посты с вопросами, содержащими только вопрос, а решения находятся в постах с ответами. Вместо того, чтобы включить свое решение в вопрос, вы можете разделить это на ответ. Затем вы также сможете указать, что проблема решена, приняв свой собственный ответ (что можно сделать через 2 дня после публикации вопроса, нажав на флажок рядом с ним). fixer1234 6 лет назад 0
Не могли бы вы поделиться некоторыми примерами данных? потому что мы не можем видеть, где / где находится ваша входная строка / столбец и целевой выходной столбец / строка ваших файлов .. || Вы можете использовать Google Drive или Onedrive. || Вы можете переименовать свой столбец или повторно ввести данные, чтобы сделать их анонимными. || Просто чтобы быть честным .. Я думаю, что я получил ваш вопрос .. Я просто не получил детали дела ... p._phidot_ 6 лет назад 0

1 ответ на вопрос

0
Neve

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

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

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

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

Похожие вопросы