Ru-Board.club
← Вернуться в раздел «Программы»

» Excel FAQ (часть 5)

Автор: kimtan
Дата сообщения: 04.12.2010 20:45
Antonio755

Еще пару вариантов:

=СУММ(ИНДЕКС(A:A;ПОИСКПОЗ(1E+99;A:A)-2):ИНДЕКС(A:A;ПОИСКПОЗ(1E+99;A:A)))

=СУММ(СМЕЩ(ИНДЕКС(A:A;ПОИСКПОЗ(1E+99;A:A));;;-3))
Автор: Antonio755
Дата сообщения: 05.12.2010 09:49
Спасибо взял последний вариант, как самый простой, работает.

Еще вопрос:
Есть формула: =СРЗНАЧЕСЛИ(AP5:AP28;"<99,5")
В том случае если значений нет меньше 99,5 в столбце формула выдает ошибку, как сделать чтоб при отсутствии значения <99,5 был 0
Автор: ded2007
Дата сообщения: 05.12.2010 10:40
Antonio755
Цитата:
Есть формула: =СРЗНАЧЕСЛИ(AP5:AP28;"<99,5")
В том случае если значений нет меньше 99,5 в столбце формула выдает ошибку, как сделать чтоб при отсутствии значения <99,5 был 0

=ЕСЛИ(СУММЕСЛИ(AP5:AP28;"<99,5")>0;СРЗНАЧЕСЛИ(AP5:AP28;"<99,5");0)
Автор: kimtan
Дата сообщения: 05.12.2010 10:51
Antonio755
Добавьте проверку:

=ЕСЛИ(ЕОШ(СРЗНАЧЕСЛИ(AP5:AP28;"<99,5"));;СРЗНАЧЕСЛИ(AP5:AP28;"<99,5"))

vallyol
А где же обещанные апострофы?

В поле "Найти" - Alt+0160
Поле "Заменить" - оставить пустым.

Или формульное решение:

=--ПОДСТАВИТЬ(A1;СИМВОЛ(160);)
Автор: vallyol
Дата сообщения: 05.12.2010 11:01
kimtan

Цитата:
А где же обещанные апострофы?

Ну, апострофы... домики... разница, ИМХО, только в выравнивании в ячейке.... Упоминание об апострофах вылезло из опенофиса, ибо только им я могу пользоваться под линухом...

Кстати, самое главное - СПАСИБО!!! Формульное решение помогло!
Автор: kimtan
Дата сообщения: 05.12.2010 11:17
vallyol

Символ 160 - неразрывный пробел.
Автор: vallyol
Дата сообщения: 05.12.2010 12:03
kimtan

Цитата:
Символ 160 - неразрывный пробел.

То есть это из юникодового набора.... Теперь понял твой вопрос про апострофы!!!
Автор: Antonio755
Дата сообщения: 05.12.2010 12:15
Наконецто все работает!
Всем спасибо, вы мне очень помогли!
Автор: RJ2k6
Дата сообщения: 06.12.2010 09:46
ALeXkRU

Цитата:
самое простое - макрос записать:
- встать в первую строку с данными в первой ячейке
- включить запись макроса
- проделать всё, что требуется (т.е. перейти вниз на 50 строк (клавиатурой!), оказавшись в строке итога, шагнуть в ячейку D, вписать в ней "ИТОГО", выделить, сделать жирным, шагнуть в следующую ячейку, вставить формулу Сумма... и т.п. до конца алгоритма, шагнуть на строку ниже, в первую ячейку)
- остановить запись макроса..

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

К сожалению, это не помогло . В макросе при записи прописываются определенные диапазоны ячеек. Напр., "Range("A102:G102").Select" или "Range("E102").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)". И когда я запускаю макрос на исполнение, то все операции повторяются с одними и теми же ячейками. Как разрулить эту ситуацию?
Автор: ded2007
Дата сообщения: 06.12.2010 11:13

Цитата:
К сожалению, это не помогло . В макросе при записи прописываются определенные диапазоны ячеек. Напр., "Range("A102:G102").Select" или "Range("E102").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)". И когда я запускаю макрос на исполнение, то все операции повторяются с одними и теми же ячейками. Как разрулить эту ситуацию?

Но блок команд для заданного форматирования Вы же записали. Дальше

Код: Sub цикл()
For stroka = start To end Step 50
Cells(stroka, 5).Select
выполнить_форматирование
ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)"
Next
End Sub
Автор: Unnicked
Дата сообщения: 06.12.2010 12:38
Помогите, пожалуйста, со следующей задачей.

Есть ячейка, содержащая текст и цифры (например, RW1000). Ясли взять ячейку и потащить вниз, в следующих ячейках появляются значения RW1001, RW1002 и т.д.

Можно ли как-нибудь изменить шаг этого изменения - чтобы было, например, RW1005, RW1010 и т.д.

С обычными числовыми значениями проблем нет, а вот с содержащими текст никак не получается...
Автор: ded2007
Дата сообщения: 06.12.2010 14:34
Unnicked
Цитата:
Можно ли как-нибудь изменить шаг этого изменения - чтобы было, например, RW1005, RW1010 и т.д.
С обычными числовыми значениями проблем нет, а вот с содержащими текст никак не получается

Почему не получается? Напишите ДВА последовательных значения RW1000 и RW1005 (чтобы была база для интерполяции), выделите оба. В правом нижнем углу рамки выделения будет точка. Хватайте за нее и тяните.
Автор: RJ2k6
Дата сообщения: 06.12.2010 16:46
ded2007,
Сутра была запарка, поэтому пришлось вручную все делать и не было уже времени эксперементировать .
Сейчас протестировал. И это то, что и было нужно! Добавил только строку "Range(Cells(stroka, 1), Cells(stroka, 9)).Borders(xlEdgeTop).Weight = xlMedium", т.к. рисовало только нижнюю жирную полосу, а нужно было и сверху и снизу.
Еще раз спасибо! В следующий раз все сделаю за пять минут!
Автор: ded2007
Дата сообщения: 06.12.2010 19:57
RJ2k6
Цитата:
В следующий раз все сделаю за пять минут!
Кстати, о времени исполнения. Когда мы производим с помощью макросов большое количество форматирования или добавление формул на лист, который и без того перенасыщен формулами, то нередко процедура затягивается. Ускорить обработку позволяет отключение перерисовки и пересчета формул на время выполнения макроса.

Код: sub очень_медленная_обработка()
' Отключить автоматический расчет и перерисовку экрана
With Application
.ScreenUpdating = False
.Calculation = xlManual
End With

' собственно тело макроса
...
...
...

' Включить автоматический расчет и перерисовку экрана
With Application
.ScreenUpdating = True
.Calculation = xlAutomatic
End With
Calculate
end sub
Автор: denisAzef
Дата сообщения: 08.12.2010 09:18
как функцию написать помогите плиз есть столбец чисел а рядом столбец имен.... вот функция такая чтобы в ячейке писалось имя со второго столбца, возле которого минимальное число. Спасибо
Автор: ded2007
Дата сообщения: 08.12.2010 09:36
denisAzef
Цитата:
как функцию написать помогите плиз есть столбец чисел а рядом столбец имен.... вот функция такая чтобы в ячейке писалось имя со второго столбца, возле которого минимальное число. Спасибо
А однозначность гарантирована? Вдруг таких чисел несколько или, хуже того, все одинаковые

Автор: denisAzef
Дата сообщения: 08.12.2010 09:47
ну если несколько то любое имя из собпавших (а лучше всего конечно через запятую всех с одинаковыми)

Добавлено:
ну хотябы так что все разные числа будут
Автор: chel78
Дата сообщения: 08.12.2010 11:27
Привет, есть простенькая задача, но мозгом не могу понять как .
есть список в Excel

00354131490101593717
00354131490101593724
00354131490101593755
00354131490101593809
00354131490101593816
00354131490101593854
00354131490101593885
00354131490101593892
00354131490101594028


Как быстро через строчку добавить постоянное значение например PALLET что бы получилось
00354131490101593717
PALLET
00354131490101593724
PALLET
00354131490101593755
PALLET
00354131490101593809
PALLET

Спасибо
Автор: ded2007
Дата сообщения: 08.12.2010 12:03
denisAzef

Цитата:
ну если несколько то любое имя из собпавших (а лучше всего конечно через запятую всех с одинаковыми)
Вот формула для первого значения сопадающего с минимальным.

= ДВССЫЛ("E"&ПОИСКПОЗ(МИН(D4:D27);D4:D27;0)+4-1)

Пояснения:
D4:D27 - диапазон с числовыми значениями;
"+4-1" - номер первой строки диапазон за вычетом 1;
"E" - имя столбца с извлекаемыми данными



Добавлено:

chel78 Ну макрос надо написать. Количество значений известно?
Автор: chel78
Дата сообщения: 08.12.2010 12:13

Цитата:
chel78 Ну макрос надо написать. Количество значений известно?

колво бывает разное, но в данном случае 33
Автор: ded2007
Дата сообщения: 08.12.2010 12:24
chel78
Вставлять пустую строку или сдвигать список вниз не затрагивая соседних столбцов?
Автор: chel78
Дата сообщения: 08.12.2010 12:36
Через строку вставить значение, неважно как, сдвигая вниз, либо вставлять пустую а в нее значение.
Автор: ded2007
Дата сообщения: 08.12.2010 12:44
chel78

Код: Sub sdvig()
stroka = ActiveCell.Row
stolbec = ActiveCell.Column
Do
stroka = stroka + 1
Cells(stroka, stolbec).Insert Shift:=xlDown
stroka = stroka + 1
Cells(stroka - 1, stolbec).Value = "PALLET"
Loop While Cells(stroka + 1, stolbec) <> ""
End Sub
Автор: denisAzef
Дата сообщения: 09.12.2010 02:14
ded2007 спасибо!
Автор: LAVVAL
Дата сообщения: 12.12.2010 17:38
Доброго времени всем.
Народ, может мне кто поможет.
Есть макрос


Код:
Sub Макрос2()
'
' Макрос2 Макрос
'
' Сочетание клавиш: Ctrl+я
'
Columns("A:A").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$A$146507").AutoFilter Field:=1, Criteria1:= _
"=*goingod*", Operator:=xlAnd
Selection.Copy
Sheets("Лист2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFilter
ActiveSheet.Range("$A$1:$A$902844").AutoFilter Field:=1, Criteria1:="=*mp*" _
, Operator:=xlAnd
End Sub
Автор: LeshaK89
Дата сообщения: 14.12.2010 23:55
Нуждаюсь в помощи! Нужно написать макрос. Задание такое:
Имеется столбец чисел неизвестной заранее высоты. Заменить в этом столбце все элементы, меньшие заданного X1, на X1, а большие заданного X2>X1 — на X2. Числа X1 и X2 записаны в ячейки B1 и B2 соответственно. В ячейку B3 необходимо записать количество сделанных замен.
Скорее всего, похожие задания здесь уже прорешивались, но мне не хватило терпения просмотреть все сообщения. Заранее спасибо!
Автор: kimtan
Дата сообщения: 15.12.2010 00:47
LeshaK89
Может у Вас хватит терпения хотя бы прочесть шапку топика?
Автор: Mushroomer
Дата сообщения: 15.12.2010 05:53
LeshaK89
Шапка топика - первое сообщение на странице.
Цитата:
Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.

kimtan
Он новичек. Ему нужно более подробно расписывать
Автор: Mento
Дата сообщения: 16.12.2010 13:07

Цитата:
Смена представления имен столбцов с буквенного на цифровое и обратно

Для Excel 2007: Кнопка Office-->Параметры Excel-->Формулы-->Работа с формулами-->Стиль ссылок R1C1
Автор: Fierce1
Дата сообщения: 17.12.2010 10:03
Добрый день, у меня такая проблемма:
Excel 2003 начал вылетать при добавлении или редактировании диаграмм. Попробовал установить excel xp, проблемма осталась. Что это может быть?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121

Предыдущая тема: Trojan Remover 6.81 Build 2594


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.