Формула проверки Excel, ссылающаяся на другую ячейку - PullRequest
0 голосов
/ 10 октября 2018

У меня большая и сложная рабочая тетрадь, пересчет занимает несколько секунд.Я пытаюсь проверить (например) [J2] в зависимости от содержимого других ячеек.

У меня есть логика в другой ячейке, AE2.
=OR(AD2="",IF(AND(AD2=AD1,G2 = G1, H2 = H1,J2 = "same items"), TRUE, IF(ISNUMBER(J2), ROUND(ABS(J2-1),0) = J2-1, FALSE)))

AE2 отображает TRUE или FALSE, как я хочу.
Я использую AE2 для условного форматирования J2 иэто работает, как я хочу.

В идеале, чтобы облегчить понимание и обслуживание, я бы хотел, чтобы пользовательская проверка J2 ссылалась на AE2;
Стиль предупреждения об ошибках: Stop
Допустимые настройки: Custom Формула:=AE2.
Это не ограничивает ввод данных, вы можете вводить что угодно без сообщений.

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

Любые подсказки?

Отредактировано для добавления:

Допустимые записи в J2 зависят от других ячеек,

  • Целые числа> 1 всегда действительны.
  • Если AND(AD2 = AD1,G2 = G1, H2 = H1) ИСТИНА, то текстовое значение same items также допустимо.

Отредактировано для добавления:
Приведенная выше формула работает, если ни один из AD1, AD2,G1, G2, H1, H2 не заполнены.Я начинаю думать, что расчет формул в проверке пользовательских данных отличается от расчета в ячейке рабочего листа.Вернуться к попытке

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Несколько иной подход работал довольно аккуратно.

Во-первых, исправление моего первоначального вопроса: когда я сказал, что "Целые числа> 1 всегда действительны", я имел в виду "Целые числа> 0 всегда действительны", что несущественно ничего не менять.

1) срок действия "того же элемента"
В запасном столбце (AF) я поместил формулу, чтобы оценить, является ли "тот же элемент" действительной записью
= AND(AD2 = AD1, G2 = G1, H2 = H1).
Это имело незначительное преимущество, заключающееся в упрощении формулы в AE2, которая теперь становится
=OR(AD2 = "", AND(AF2, J2 = "same items"), IFERROR(ROUND(ABS(J2-1),0) = J2-1, FALSE))
(благодаря @FoxfireAndBurnsAndBurns за напоминание о столбце IFERROR)

2)допустимые элементы
В другом запасном столбце (AH) я перечислил все допустимые записи, включая текст «те же элементы», что и первое значение в списке.Это наложило верхний предел на допустимые целые числа, но в моем случае достаточно нескольких тысяч (это количество протестированных элементов).

3) именованный диапазон допустимых элементов
Теперь я создал именованный диапазон какформула.Я считаю формулу именованных диапазонов очень полезной, и я довольно часто использую эту конструкцию, чтобы автоматически настраивать диапазон на количество используемых строк.
n_items =OFFSET($AH$1, 0,0, COUNTA($AH:$AH))

4) проверка списка в целевой ячейке
НаконецЯ установил проверку J2 на
Разрешить: List
Источник: =IF($AF2, n_items, OFFSET(n_items,1,0))

Работа выполнена!Незначительное преимущество: пользователи могут (если они действительны) выбирать «те же элементы» с помощью раскрывающегося списка, а не вводить текст.

Я до сих пор не понимаю поведение моей первоначальной попытки или @FoxfireAndBurnsAndBurns, но янашел решение, которое работает для меня и у которого нет времени, чтобы пройти по этой кроличьей норе:

0 голосов
/ 10 октября 2018

Хорошо, я использовал настроенную версию проверки данных и получил что-то

Я использовал эту формулу:

`=IF(OR(AND(G2=G1;H2=H1;AD2=AD1;J2="same items");AND(J2>1;ISNUMBER(J2)=TRUE;IFERROR(INTEGER(J2)=J2;FALSE)))=TRUE;TRUE;FALSE)=TRUE`

Я перевел свою испанскую версию Excel, поэтомуНадеюсь, я ничего не ошибся, но на всякий случай получил скриншот, где нужно использовать эту формулу.

Я набрал ее в поле проверки данных J2

enter image description here

И у меня это работает:

Случай 1: только целые числа больше 1 enter image description here

Как вы можете видеть на изображении выше, значения, меньшие 2 или не целые, недействительны

Случай 2: текст same items, но только если AND(AD2 = AD1,G2 = G1, H2 = H1) enter image description here

Как видите, текстовое значение same items принимается из-за выполнения условий

Если условия не выполняются, то текстовое значение same items не может бытьпринято

enter image description here

На изображении выше H2 не равно H1, поэтому текстовое значение same items не принято .

НадеждаВы можете адаптировать это к вашим потребностям.Я никогда не думал, что вы могли бы сделать это только с Excel, но да!Я узнал что-то новое.

Я загрузил файл в mi Gdrive, если вы хотите проверить его.

https://drive.google.com/open?id=1-ssBJgCHV1nsc91XYRuQXFoIQh1AB7Ca

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...