2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 
Сообщение14.06.2006, 11:01 
беда в том, что я не пойму как мне написать верно формулу.
Писала так:
=IF(A2:A20=E2:E20;1;"BEDA")IF(A2:A20<>E2:E20;12;"beda"), она сравнивать сравнивает, но только рядом стоящие строки. А надо, чтоб бегала по всему документу, так как коды могут не совпадать по строкам.
Да ещё надо чтоб копировала A, B, C, E,F,G строки в H,I,J.

Хотела применить функции else, or, go to, copy, но не получилось.

 
 
 
 
Сообщение14.06.2006, 17:18 
Аватара пользователя
:evil:
И не получится -- это в значительной степени противоречит идее программирования эл. таблиц.

Введиите (скрытую) колонку (я буду обозначать ее Z). В ней напишите результат поиска (на примере Z3):
Код:
=ISERROR(MATCH(A3;$B$1:$B$5;1))

Затем в каждой из клеток H,I,J пишите копирование(например, B3 -> I3, пишем в I3):
Код:
=If($Z3,B3,"")


Отдельная колонка нужна для оптимизации процесса. -- иначе поиск будет происходить столько же раз, сколько у Вас колонок.

 
 
 
 
Сообщение14.06.2006, 17:27 
Аватара пользователя
незванный гость писал(а):
И не получится -- это в значительной степени противоречит идее программирования эл. таблиц.

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

 
 
 
 
Сообщение14.06.2006, 19:04 
Аватара пользователя
:evil:
Много проблем с макрами. По умолчания (я надеюсь, и у Вас), они выключены. А отвечать при каждом открытии таблицы, включать ли их -- надоедает до безумия (впрочем, я и так безумен : :lol: ). Они заметно сложнее в написании и отладке -- достаточно сказать, что доступ к клетке достаточно непрозрачен в программе. Поэтому, пока можно обойтись без них -- я стараюсь обходиться.

 
 
 
 
Сообщение14.06.2006, 19:18 
Аватара пользователя
Я, если делаю, то обычно (поскольку не очень в этом деле силен) использую в меню "Сервис->Макрос->Начать запись", а потом то, что сделаю, уже ручками добиваю. Но, конечно, стараюсь избегать их, если нахожу другой путь. У меня не выключены: "Разрешается запуск только подписанных макросов из надежных источников"

 
 
 
 
Сообщение14.06.2006, 19:23 
Аватара пользователя
:evil:
Надежных источников не бывает. А подписаться и я могу.

То, что я -- параноик, еще не значит, что за мной не гонятся.

 
 
 
 
Сообщение14.06.2006, 19:27 
Аватара пользователя
незванный гость писал(а):
А подписаться и я могу
Естественно, и я свои подписываю. Конечно, риск есть... но он есть всегда - не через макросы, так другим путем.
Я не отстаиваю, что этот путь лучше - это просто другой путь, вариант решения и не более.

 
 
 
 
Сообщение15.06.2006, 10:36 
Dim a As Range
Dim I, J as Long

With ThisWorkbook.Worksheets(1)
I = 1
Do While .Cells(I, 1).Value <> ""
If Not a is Nothing Then
Range(.Cells(I, 1), .Cells(I, 3)).Copy .Cells(.Cells(1, "I").Currentregion.Rows.Count+1, "I")
J = a.Row
Else
J = 1
End
set a = .Columns("D:D").Find(What:=.Cells(I, 1).Value, Parth:=xlWhol, After:=.Cells(J, "D"))
If a is Nothing Then I = I+1
Loop

-------------------------------------------------------------------------------------
Вот к примеру вариант решения этой проблемы, но у меня не идет финкция Range.Что делать?

 
 
 [ Сообщений: 23 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group