Проверка данных - требуется, чтобы соседняя ячейка не была пустой

25988
user190280

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

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

Я пытался AND(S3<>"",W3<>""), COUNT(S3,W3)>0, COUNTBLANK(S3,W3)=0и в AND(NOT(ISBLANK(S3)),NOT(ISBLANK(W3)))качестве подтверждения пользовательских данных, и без «Игнорировать пробелы» проверено.

Я что-то пропустил? Разве это не возможно без VBA? (В идеале я не хочу, чтобы мои коллеги нажимали на макросы каждую неделю)

0
Чтобы убедиться, что я понимаю, вы хотите формулу, которая запрещает редактирование определенной ячейки, если в определенной, другой ячейке нет содержимого? K.A 11 лет назад 0
Я хочу проверить пользовательскую проверку данных, которая позволяет запретить пользователю редактировать поле комментариев, если в соседних ячейках нет значения. (Таким образом, формула должна быть оценена как «истина» или «ложь»). Проблема, которую я, похоже, получаю, заключается в том, что проверка данных ВСЕГДА оценивается как ложь, даже если она явно не должна. РЕДАКТИРОВАТЬ: У меня все еще есть эта проблема с IF (ИЛИ (НЕ (ISBLANK (S3)), НЕ (ISBLANK (W3)), 1,0) тоже. user190280 11 лет назад 0
Вы можете сделать это с VBA без людей, которым нужно нажимать на макросы. Используйте событие worksheet_change для отслеживания изменения ячейки комментария, а затем проверьте, является ли соответствующее поле данных пустым или нет. Если все они находятся в стандартном макете (данные в столбце 3, столбце комментариев 5), то это довольно просто. Nick Perkins 11 лет назад 0
@pnuts Я не знал об этом, спасибо, что указал на это :) Shekhar 11 лет назад 1

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

1
pnuts

В ожидании уточнения требования может подойти следующее:

= НЕ (И (ЕПУСТО (S3), ЕПУСТО (W3)))

с пропуском игнорируется.

SU536862 example

Выглядит хорошо и похоже на мой ответ, который я опубликовал позже. Ваш не был в то время. :) Nick Perkins 11 лет назад 1
@NickPerkins Я знал сообщения в идентичное время - может вызвать проблемы! Даже близко может быть проблемой (хотя конкретный пример, о котором я думал, кажется, исчез). Милостивый из вас. pnuts 11 лет назад 0
Похоже, что это должно быть правильное решение, но у меня все еще есть проблемы с ним. Я предполагаю, что это означает, что причина, по которой другие решения также не работают, это какая-то другая проблема, связанная с листом. В любом случае спасибо за вашу помощь! Я просто воспользуюсь своим планом резервного копирования с использованием входящего сообщения, чтобы отговорить ненужные комментарии. ;) user190280 11 лет назад 0
@ user190280 По крайней мере, кое-что из того, что вы пробовали, выглядит мне так, как будто это не сработало бы. Очевидно, вам решать, когда «назвать время», но если вышесказанное - то, что вы хотели бы, то я думаю, что мы выполнили сложную часть, и я могу заверить вас, что результат достижим в соответствии с вашими попытками. Если вы хотите «увидеть это насквозь», вы можете, например, проверить, что ваши тестовые ячейки действительно пустые и, например, не заняты одним или несколькими пробелами или формулой, которая выводит «». pnuts 11 лет назад 1
1
Ricardo Souza

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

=NOT(OR(ISBLANK(A2),ISBLANK(J1),ISBLANK(J2))) 

То есть, если ячейка A2, ячейка J1 или ячейка J2 не заполнены, то

OR(ISBLANK(A2),ISBLANK(J1),ISBLANK(J2)) 

возвращает TRUE, и, следовательно,

NOT(OR(ISBLANK(A2),ISBLANK(J1),ISBLANK(J2))) 

возвращает FALSE, что вызывает предупреждение.

Надеюсь это поможет!

0
Nick Perkins

Я обнаружил, что это работает для меня

Screenshot of Validation dialog

Проблема в том, что если E8 будет пустым, вы не сможете ничего очистить и из проверенной ячейки. Я не мог заставить его работать с "Ignore blank", хотя.

TQ. Но вы уверены, что знаете, чего хочет ОП? (это не слишком шутливо, я не так!) Также (кроме!) Я думаю, что есть пара триггерных ячеек, S3 и W3, а не только E8. pnuts 11 лет назад 0
@Pnuts да не уверен на 100%, но думал, что это может быть правильно. И если есть пара ячеек, то да другой ответ намного лучше :) Nick Perkins 11 лет назад 0
Ник, просто замечание: вместо `= IF (E8 =" ", FALSE, TRUE)` вы можете просто написать `= E8 <>" "` ;-) Peter Albert 11 лет назад 2
Вы можете убедиться в том, что очистка проверенной ячейки всегда разрешена (и, при необходимости, снимите флажок «Игнорировать пропуски»), указав пустую строку в формуле проверки. например, если проверенный адрес ячейки в вашем примере был F8, тогда формула проверки была бы `= ИЛИ (F8 =" ", E8 <>" ")` blackworx 7 лет назад 1
-1
Patrick B

Решение, которое кажется эффективным и также простым, можно найти по адресу:

https://trumpexcel.com/conditional-data-entry-in-excel/

По сути, это включает в себя отключение «Игнорировать пропуски», а затем указание, что ссылочная ячейка должна быть непустой. Например, если какая-либо ячейка в столбце C должна принимать входные данные только при наличии значения в столбце B, формула проверки для ячеек в столбце C может быть = $ B1 <> ""

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