Страницы: 1
RSS
Условие в зависимости от границ ячейки
 
Excel 2007  
Набор данных (чисел). В одном столбце вместо числа используется перечеркивание ячейки с использованием границ (чтобы числа не вводили в эту ячейку).  
В каждой строке в последней введена введена формула, учитывающая наличие такой перечеркнутой ячейки или ее отсутствие. т.е. всего 2 вида формул.    
Но пользователи тупо копируют формулу на все ячейки подряд или изменяют положение ячейки с "перечеркнутой" ячейкой (так бывает надо), а формулу не могут правильную поставить.  
Длиное вступление, а теперь вопрос  
 
Можно ли задать в условие проверку на наличие границ в ячейки, и в зависимости от этого вычислять значение по разным формулам?
 
Можно не выделываться с линиями (ведь в перечеркнутую ячейку данные внести можно), а защитить ячейки от изменений. Еще один вариант – проверка данных в ячейках, т.е. ненужное в ячейки вписать невозможно.
 
Можно без формата смотреть есть там число или нет:  
=ЕСЛИ(ЕЧИСЛО(A1);"формула1";"формула2")  
+добавить УФ для наглядности
 
Наверное я не совсем точно обрисовал ситуацию.  
набор чисел - это оценки разных объектов по нескольким критериям. поскольку не всегда при осмотре объекта оценивают каждый критерий, то возможны ситуации, когда не все графы (оценки по всем критериям) будут заполнены. Считается, что если хотя бы один критерий не оценен, то весь объект не оценен - я сделал справа еще один столбец (Оценено), где по условию ЕПУСТО ставлю 1 (если все критерии оценены), либо 0 - если не все.  
Некоторые объекты не имеют одного критерия (в примере Критерий3) - у них для наглядности стоит крест в этой ячейке. И формула в графе Оценено тоже изменена. Поскольку набор объектов может меняться, то сложно сделать заранее шаблон и закрыть от доступа (как тут предлагалось) ячейки, в которые не надо вносить оценки (если объект не оценивается по критерию в этом столбце).  
Новые строки добавляются путем копирования, но иногда, особо "умные" скопировав не то, что надо, приводят скопированное к якобы правильному виду - т.е. скопируют строку, где оценивается объект по всем критериям, а объект вписывают тот, у которого один критерий не оценивается. В итоге формула в графе Оценено видит, что одна ячейка не заполнена и не ставит признак оценки объекта (цифру 1 справа).    
Для примера привожу примерный вид данных:  
 
Правильная работа:  
Объект   Критерий1  Критерий2 Критерий3 Критерий4 Оценено  
Объект1     4           4         4        4         1  
Объект2     5           4                  5         0  
Объект3     4           5         X        4         1  
 
Ошибочная работа (при неправильном копировании формулы в поле Оценено):  
Объект   Критерий1  Критерий2 Критерий3 Критерий4 Оценено  
Объект1     4           4                  4         1  
Объект3     4           5         X        4         0  
 
Объект1 - формула проверяет всего 3 критерия, а должна проверять 4.  
Объект3 - формула проверяет 4 критерия, а должна проверять 3.    
 
Вот и получается, что критерий, по которому в столбце Оценено должна подставляться формула зависит от границ ячейки в столбце Критерий3.  
 
Может я чего не так придумал - можно как-то по-другому сделать?  
Сейчас тупо визуально пробегаюсь по всемe столбцу Оценено и смотрю на длину формулы - для 3-х критериев она короче, значит в строке должен стоять крест.
 
Правильная работа:  
Объект Критерий1 Критерий2 Критерий3 Критерий4 Оценено  
Объект1 ___4_________4_________4__________4_________1  
Объект2 ___5_________4____________________5_________0  
Объект3 ___4_________5_________X__________4_________1  
 
Ошибочная работа (при неправильном копировании формулы в поле Оценено):  
Объект Критерий1 Критерий2 Критерий3 Критерий4 Оценено  
Объект1 __4_________4____________________4_________1  
Объект3 __4_________5_________X__________4_________0
 
Stark, ведь у Вас есть сам файл с этими границами. И не лень Вам писать имитацию ячеек с данными? Сам файл прикрепить не проще?
 
Да ладно Вам Юрий, пусть себе рисует, прикольно :-)
 
{quote}{login=Serge 007}{date=17.05.2010 11:14}{thema=}{post}Да ладно Вам Юрий, пусть себе рисует, прикольно :-){/post}{/quote}Стараюсь избегать такого, но в данном случае +1  
:)
 
{quote}{login=Serge 007}{date=17.05.2010 11:14}{thema=}{post}Да ладно Вам Юрий, пусть себе рисует, прикольно :-){/post}{/quote}  
И мне понравилось.:-)
Я сам - дурнее всякого примера! ...
 
Stark, все будут прикалываться, а нормального ответа с такими примерами не дождешься
 
Рад что всем понравились мои художества. И если есть возможность улучшить мой алгоритм вычисления - буду признателен. Прикладываю файл. (Excel 2007) Небольшие разъяснения. Лист Экран - туда вносят оценки, которые получили секции в результате осмотра. Столбец "Приборы безопасности" - не у всех секций может быть оценен (там стоит крест). Два столбца Оценено и Осмотрено справа от вводимых данных и являются предметом моего вопроса - как изменить в них формулу в зависимости от столбца Приборы безопасности, в котором в строке стоит либо оценка, либо ячейка перечеркнута и тогда эта ячейка не учавствует в формуле. Лист СПРАВКА - создается на основе листа Экран. Информация представлена немного в другом ракурсе, если так можно выразиться. Если кто-то сможет соптимизировать документ - буду рад. <BR><STRONG>Файл удален</STRONG> - велик размер. [Модераторы]
 
Здравствуйте коллега по транспортному цеху;)  
Вопрос - макросы можно?  
 
Посмотрите вариант. В столбец J по даблклик мыши вводится "Х". ввести другое значение - можно только выделив 2 ячейки и очистив содержимое. Поменять Х на число не дает макрос:)  
Ну и соответственно поправил формулы:)  
 
ЗЫ а почему СЧЁТЗ() в этом файле не работает? Нормально считает числовые данные:( Пошел справку курить:)
 
{quote}{login=Igor67}{date=23.05.2010 09:39}{thema=}{post}Здравствуйте коллега по транспортному цеху;){/post}{/quote}  
Доброго времени суток! :)  
{quote}{login=Igor67}{date=23.05.2010 09:39}{thema=}{post}  
Вопрос - макросы можно?  
{/post}{/quote}  
Если бы было можно, то я бы в макросе сделал проверку на наличие в столбце границ и вычислил бы в том же макросе значение, без всяких формул.  
А поскольку по умолчанию в офисе макросы отключены (вроде даже без уведомления?), и не каждый знает как их разрешить, то захотел сделать универсальное решение не завязанное на макросе.  
{quote}{login=Igor67}{date=23.05.2010 09:39}{thema=}{post}  
Посмотрите вариант. В столбец J по даблклик мыши вводится "Х". ввести другое значение - можно только выделив 2 ячейки и очистив содержимое. Поменять Х на число не дает макрос:)  
Ну и соответственно поправил формулы:)  
{/post}{/quote}  
Где-то в макросе косяк - если стереть цифру в столбце оценок, то иногда появляется X, а иногда - пустая ячейка. Потыркался - не понял зависимость. Вот сейчас даже цифру не дает вводить - сразу ставит крест. :) Похоже переменная strX запоминает свое значение (Х) и в процедуре Worksheet_Change ставит его во все ячейки.  
 
Да и объяснять пользователям, что стирать крест надо выделив две ячейки, а для установки сделать ДаблКлик ... забудут сразу же, а если и не сразу, то через пол года точно (периодичность комиссионного осмотра - два раза в год).  
 
{quote}{login=Igor67}{date=23.05.2010 09:39}{thema=}{post}  
ЗЫ а почему СЧЁТЗ() в этом файле не работает? Нормально считает числовые данные:( Пошел справку курить:){/post}{/quote}  
А СЧЁТЗ() как мне кажется и не подошел бы - так как неизвестно в каком месте диапазона пустая ячейка. Хотя, если сделать второе условие на проверку местонахождения пустой ячейки... Да и крест тоже не пустое значение!  
А формула работает. По крайней мере у меня  
=ЕСЛИ(СЧЁТЗ(E41:M41)=9;1;"")  
дало 1 при всех заполненных оценках и пусто, если удалял одну из оценок.  
Тут еще нюанс, что для неоцененных секций люди ставят "н/о", что не позволяет использовать СЧЕТЗ.
 
сорри, что-то с тегами напутал.
 
Даже .xlsx 125 Кб!
 
<<Тут еще нюанс, что для неоцененных секций люди ставят "н/о", что не позволяет использовать СЧЕТЗ.>>  
Не позволяет СЧЁТЗ() - используйте СЧЁТ()
 
Stark, Вы не ответили на поставленный вопрос.    
Про СЧЁТЕСЛИ() - используйте его в таком варианте СЧЁТЕСЛИ(диапазон;"X"). Учтите что Х в файле не русская ХУ, а аглицкая ИКС. Тогда все другое введенное пользователем - считпаться не будет. А СЧЁТ() считает только числовые значения.  
Игорь67
 
{quote}{login=}{date=24.05.2010 09:42}{thema=}{post}Stark, Вы не ответили на поставленный вопрос.    
Про СЧЁТЕСЛИ() - используйте его в таком варианте СЧЁТЕСЛИ(диапазон;"X"). Учтите что Х в файле не русская ХУ, а аглицкая ИКС. Тогда все другое введенное пользователем - считпаться не будет. А СЧЁТ() считает только числовые значения.  
Игорь67{/post}{/quote}  
 
На какой вопрос? Если поповоду макросов - то не хотелось бы.  
Про формулу СЧЁТЕСЛИ(диапазон;"X") - так и не понял куда ее применить.  
Защиту от путания русской ХУ и английской ИКС сделал через ИЛИ.  
 
 
Вообще в ходе прочтения ветки составил такие формулы:  
Для столбца Осмотрено:  
=ЕСЛИ(ИЛИ(J23="X";J23="Х");(ЕСЛИ(СЧЁТ(E23:I23;K23:M23)=8;1;""));ЕСЛИ(СЧЁТ(E23:M23)=9;1;""))  
Для столбца Оценено:  
=ЕСЛИ(ИЛИ(J23="X";J23="Х");ЕСЛИ(СЧЁТЕСЛИ((E23:M23);"")+СЧЁТЕСЛИ((K23:M23);"")=0;1;"");ЕСЛИ(СЧЁТЕСЛИ((E23:M23);"")=0;1;""))  
 
Что смущает - так это отсутствие на проверку введения пробела вместо пустой ячейки - визуально это определить сложно, а формула посчитает как осмотрено.  
 
Кто-нибудь может предложить другие варианты исполнения задачи?  
максимально хочется сделать защиту от "дурака".
Страницы: 1
Читают тему
Наверх