очистка функции / альтернативы

У меня есть даты в столбце A, начиная с [A1] что мне нужно было сопоставить ближайший вторник на этой неделе, если нет — четверг, если нет — вторник следующей недели. Функции, которые я использую:

Ближайший Вт [B1] =IF(A1+1-WEEKDAY(A1,3)<A1,(A1+1-WEEKDAY(A1,3)+7),A1+1-WEEKDAY(A1,3))

Ближайший чт [C1] =IF(A1+3-WEEKDAY(A1,3)<A1,(A1+3-WEEKDAY(A1,3)+7),A1+3-WEEKDAY(A1,3))

Теперь, чтобы узнать ближайший вторник или четверг, я сравниваю разницу между [A1] и вт и чт:

[D1] =IF(AND((B1-A1)<(C1-A1),(C1-A1)>(B1-A1)),B1,C1)

У меня возникает соблазн заменить B1 / C1 вложенными функциями «ЕСЛИ», которые раздувают мою формулу, делая файл толстым и медленным, но я избавлюсь от дополнительных столбцов B и C в своей электронной таблице, которая используется несколькими людьми.

Не могли бы вы порекомендовать, как сделать его чище?

1 ответ
1

Учитывая ваши разъяснения в комментариях, чтобы найти

  • текущий или следующий вторник или четверг, вы можете использовать:

    =A1+7-WEEKDAY(A1-3-2*(WEEKDAY(A1,13)<=2))
    

Другими словами,

  • если дата — среда или чт, верните следующий или текущий чт
  • В противном случае вернитесь в следующий или текущий вторник.

введите описание изображения здесь

  • Это отлично, Рон. Не могли бы вы объяснить, что там происходит? Похоже, вы устанавливаете начало недели как среду и переходите на следующую неделю, вычитая … я теряю

    — Павел Кобзарь
    4 часа назад

  • @PavloKobzar Он основан на основной формуле, которая someDate - Weekday(someDate) всегда будет возвращать предыдущую субботу. Поскольку вы хотите вернуть такой же T/Th вы начинаете со следующей недели. А поскольку вы хотите вернуть вторник или четверг в зависимости от того, какой сейчас день недели, вы меняете вычитаемую сумму на 3 или 5. С использованием 13 Аргумент просто упрощает вычисления.

    — Рон Розенфельд
    1 час назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *