Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка построчно / 11 сообщений из 11, страница 1 из 1
24.01.2007, 15:41:18
    #34279199
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
Доброго времени суток!
Я ежедневно работаю с большим объемом данных в Excel. Одна из проверок - корректность значений в 2-х ячейках. Другими словами А1+А2=А3, если сумма не равна значению в третьей ячейке - это ошибка. Хочу написать небольшой скриптик, который бы проверял это условие построчно, то есть
if a1+a2=a3
then все хорошо
else
определенное действие
end if
Так вот вопрос такой: умеет ли Excel такое построчное сравнение? Насколько мне известно, Access работает именно со строками, а вот сможет ли тар работать Excel?
Заранее благодарю за ответы!
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
24.01.2007, 17:51:07
    #34279870
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
если будете писать скриптик на язычке VBA, то можно сделать все. А именно такую проверку будет следать совсем просто. Но можно сделать и проще: добавить колонку, где для каждой строки будет проверка =C1=(A1+B1) и сделать контрольную ячейку, которая будет отражать, найдены ли несообветсвия или нет, типа =MATCH(FALSE;D1:D17;0).
...
Рейтинг: 0 / 0
24.01.2007, 20:20:53
    #34280258
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
vbaproесли будете писать скриптик на язычке VBA, то можно сделать все. А именно такую проверку будет следать совсем просто. Но можно сделать и проще: добавить колонку, где для каждой строки будет проверка =C1=(A1+B1) и сделать контрольную ячейку, которая будет отражать, найдены ли несообветсвия или нет, типа =MATCH(FALSE;D1:D17;0).

ышо варианты для размышления

1. ввод через Ctrl+Shift+Enter
=OR(A1:A20+B1:B20<>C1:C20)
=ИЛИ(A1:A20+B1:B20<>C1:C20)


2. ввод через Ctrl+Shift+Enter
=MATCH(TRUE,A1:A20+B1:B20<>C1:C20,0)
=ПОИСКПОЗ(ИСТИНА;A1:A20+B1:B20<>C1:C20;0)


3. VBA
Sub test()
[E1:E20] = Evaluate("A1:A20+B1:B20=C1:C20")
End Sub

и т.д.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
25.01.2007, 13:20:23
    #34281769
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
KL (XL)
3. VBA
Sub test()
[E1:E20] = Evaluate("A1:A20+B1:B20=C1:C20")
End Sub

Привет! Понравился этот метод, но код
Код: plaintext
1.
2.
Sub test()
[AE2:AE100000] = Evaluate("V2:V100000+Y2:Y100000=Q2:Q100000")
End Sub
выдает ошибку Object required. Что это?
...
Рейтинг: 0 / 0
25.01.2007, 13:27:44
    #34281799
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
Frost_Imp KL (XL)
3. VBA
Sub test()
[E1:E20] = Evaluate("A1:A20+B1:B20=C1:C20")
End Sub

Привет! Понравился этот метод, но код
Код: plaintext
1.
2.
Sub test()
[AE2:AE100000] = Evaluate("V2:V100000+Y2:Y100000=Q2:Q100000")
End Sub
выдает ошибку Object required. Что это?

У меня в Excel2007 работает без проблем, а если у тебя Excel 97 - 2003, то ты с количеством строк погорячился - их там только 65536 :-)
...
Рейтинг: 0 / 0
25.01.2007, 13:27:46
    #34281801
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
Frost_Imp

Вы уж больно много строк указали - 100000. На листе их всего 65536
Код: plaintext
1.
2.
Sub test()
[AE2:AE65536] = Evaluate("V2:V65536+Y2:Y65536=Q2:Q65536")
End Sub
...
Рейтинг: 0 / 0
25.01.2007, 14:20:52
    #34282032
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
lena_#### Frost_Imp
Вы уж больно много строк указали - 100000. На листе их всего 65536

Точно! Совсем забыл! Все время путаю с Access. Спасибо!
...
Рейтинг: 0 / 0
25.01.2007, 14:52:13
    #34282194
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
Мне понравился способ построчной проверки :-) Хочу спросить, как в этот способ добавлять условия "и" и "или"? То есть в эту проверку
Код: plaintext
[Error!Q2:Error!Q65536] = Evaluate("main!Q2:main!Q65536>=200")
нужно добавить "или не пустая ячейка"
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
25.01.2007, 15:39:34
    #34282451
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
Frost_ImpМне понравился способ построчной проверки :-) Хочу спросить, как в этот способ добавлять условия "и" и "или"? То есть в эту проверку
Код: plaintext
[Error!Q2:Error!Q65536] = Evaluate("main!Q2:main!Q65536>=200")
нужно добавить "или не пустая ячейка"
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.

Можешь попробовать так, но по-моему получается бессмыслица :-)

Код: plaintext
    [Error!Q2:Error!Q65536] = Evaluate("OR(main!Q2:main!Q65536>=200,main!Q2:main!Q65536<>"""")")
...
Рейтинг: 0 / 0
25.01.2007, 16:00:15
    #34282559
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
KL (XL)Можешь попробовать так, но по-моему получается бессмыслица :-)
Код: plaintext
    [Error!Q2:Error!Q65536] = Evaluate("OR(main!Q2:main!Q65536>=200,main!Q2:main!Q65536<>"""")")

Наоборот правильно! У меня же не на всех строках данные. Когда пойдут пустые - без "или" выдало бы "ложь" )))
Еще один маленький вопрос (вы уж меня извините).
После различных проверок на листе error у меня имеется множество столбцов со значениями "ЛОЖЬ" и "ИСТИНА". Нужно выделить только те строки, в которых (в любом из столбцов) есть значение "ЛОЖЬ". Это возможно?
...
Рейтинг: 0 / 0
25.01.2007, 16:24:04
    #34282678
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка построчно
Код: plaintext
    [Error!Q2:Error!Q65536].FormatConditions.Add(xlExpression, , "=AND(ISLOGICAL(RC),RC=FALSE)").Interior.ColorIndex =  3 

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка построчно / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]