Настройка и работа с Excel

reesly

Member
Joined
month_9_short 3, 2005
Messages
33
Reaction score
4
Age
45
Location
Татарстан
Автоматизировать создание диаграмм можно. Но трудно - без VBA не обойтись. Предлагаю следующий вариант.
Выделяешь нужные данные - запускаешь запись макроса.
Дальше делаешь стандартные действия по созданию диаграмм - кнопочку Диаграмма, выбираешь тип диаграммы, определяешь ось Х, название, где разместить - потом настраиваешь остальные параметры шрифты осей , заливки если надо. Останавливаешь запись макроса. Заходишь в редактор VBA и начинаешь править и отлаживать этот макрос. Очень много свойств и объектов у диаграммы - с наскоку сделать вряд-ли получится.
 

MIA_

Member
Joined
month_3_short 14, 2005
Messages
71
Reaction score
10
Age
47
Location
MINSK
Образец файла с формулой для разбивки предложения из одной ячейки на слова

В моем случае требовалось чтобы формула разбивала несколько слов из одной ячейки в разные+ к тому что отделилось добавляла еще нужное слово (напр. название производителя)
Если кому нужно:

_http://www.megaupload.com/?d=5YLEH1IB
или
_http://grpravo.by.ru/Obrazec%20formuly%20excel.xls
 
Last edited by a moderator:

MIA_

Member
Joined
month_3_short 14, 2005
Messages
71
Reaction score
10
Age
47
Location
MINSK
Помогите написать формулу

Задача в следующем:
Имеются наименования производителя, которые являются постоянными (напр 4 шт), в зависимости от этого автоматически подставлялась страна происхождения.
Нашла что-то похожее в готовой формуле :
=ВЫБОР(A1;"Италия";"Германия";"Венгрия")
Только мне не подходит то что оно работает только если у меня в ячейке А1 будет цифра, соотв. 1-это будет италия, 2-герм и т.д.
А у меня в ячейке А1 стоит тот самый производитель.

Плз, помогите....
 

Ashcraft

Member
Joined
month_7_short 17, 2004
Messages
39
Reaction score
0
Age
48
В стандартных функциях экселя я не силен, поэтому мне легче сделать такую задачу макросом примерно такого вида:
Sub Замена()
Dim Counter As Integer
For Counter = 1 To 20
If Worksheets("Лист1").Cells(Counter, 1).Value = "Название фирмы" Then
Worksheets("Лист1").Cells(Counter, 2) = "Страна производитель"
End If​
Next Counter
End Sub

Соответственно блок If повторяешь столько раз, сколько у тебя производителей. В принципе решение грубое, топорное, но работает :)
 

MIA_

Member
Joined
month_3_short 14, 2005
Messages
71
Reaction score
10
Age
47
Location
MINSK
В стандартных функциях экселя я не силен, поэтому мне легче сделать такую задачу макросом примерно такого вида:
Sub Замена()
Dim Counter As Integer
For Counter = 1 To 20
If Worksheets("Лист1").Cells(Counter, 1).Value = "Название фирмы" Then
Worksheets("Лист1").Cells(Counter, 2) = "Страна производитель"
End If​
Next Counter
End Sub

Соответственно блок If повторяешь столько раз, сколько у тебя производителей. В принципе решение грубое, топорное, но работает :)

Никогда не работала с макросами:(
Могу я прислать файл? А Вы поможете мне его туда вставить?
мой icq 68-181-288
 

reesly

Member
Joined
month_9_short 3, 2005
Messages
33
Reaction score
4
Age
45
Location
Татарстан
1. На другом листе (Лист2) делаешь табличку соответствий - 2 столбца : производитель и страна, заполняешь её;
2. в нужной таблице делаешь формулу - ВПР(А1;Лист2!$А$1:$B$4;2;0), где
*"А1" - ссылка на ячейку с производителем,
* "Лист2!$А$1:$B$4" - это таблица соответствий (доллары нужны, чтобы ссылки стали абсолютными - не менялись при размножении формулы),
* 2 - номер столбца подстановки (страна у нас во втором столбце)
* 0 - этот параметр тебе не нужен - просто пусть стоит 0
3. Размножаешь формулу до конца таблицы - и получаешь нужный результат
 

MIA_

Member
Joined
month_3_short 14, 2005
Messages
71
Reaction score
10
Age
47
Location
MINSK
Как убрать пустые ячееки?

Как убрать пустые ячееки? (При переходе в конец по Ctrl+End).
Выделение и удаление не помогает, очистить содержимое тоже не помогает.

Заранее спсб.
 

Kolpak

Member
Joined
month_9_short 24, 2005
Messages
58
Reaction score
11
Age
46
Location
Kazan
Всем привет. Вопрос: имеется два столбца в них данные, в некоторых строках данные этих столбцов дублируются. Как мне получить общий столбец, но что бы данные не повторялись. Всем заранее спасибо за ответ.
 

ploki

Member
Joined
month_5_short 16, 2005
Messages
237
Reaction score
180
Location
Москва
to Kolpak

Красивый и быстрый способ!
Воспользуемся классом Dictionary для имитации множества.
Этот класс реализован в библиотеке Microsoft Scripting Runtime (scrrun.dll). Чтобы подключить эту библиотеку к проекту, лезем в References и ставим галку напротив "Microsoft Scripting Runtime".

Code:
'Процедура добавления информации из заданного диапазона в множество
' (которое у нас эмулируется словарём)
Private Sub AddRangeToDic(AR As Range, AD As Scripting.Dictionary)
  Dim c As Range
  Dim st As String 
  For Each c In AR.Cells
    st = c.Text 'к строковому типу в данном случае приводить
                ' в принципе необязательно, всё равно потом будет тип Variant
    If Not AD.Exists(st) Then AD.Add st, 0
  Next
End Sub

'Тестовая процедура
' Печатает всё, что содержится в 10 строках первых двух столбцов
' в 3 столбце без повторений.
' Для прикола ещё и отсортируем :)
Public Sub test()
  Dim dic As Scripting.Dictionary
  Dim vv As Variant
  Dim i As Integer, k As Integer

  'Создаём словарь
  Set dic = New Scripting.Dictionary
  dic.CompareMode = TextCompare

  'Заполняем словарь
  AddRangeToDic ActiveSheet.Range("A1:A10"), dic
  AddRangeToDic ActiveSheet.Range("B1:B10"), dic
  
  'Выводим ключи словаря
  k = 1
  For Each vv In dic.Keys
    ActiveSheet.Cells(k, 3) = vv
    k = k + 1
  Next
  'Сортируем столбец
  With ActiveSheet.Sort
    .SetRange Range("C1:C20")
    .MatchCase = False
    .Orientation = xlTopToBottom
    .Apply
  End With
  
  'Убиваем словарь (правда здесь это лишнее :)
  Set dic = Nothing

End Sub

У меня все 65536 срок двух столбцов (если поменять "A1:A10" на "A:A" и "B1:B10" на "B:B" и "C1:C20" на "C:C") со случайными числами обрабатываются за 3,8 секунды!
 

Kolpak

Member
Joined
month_9_short 24, 2005
Messages
58
Reaction score
11
Age
46
Location
Kazan
to Kolpak

Красивый и быстрый способ!
Воспользуемся классом Dictionary для имитации множества.
Этот класс реализован в библиотеке Microsoft Scripting Runtime (scrrun.dll). Чтобы подключить эту библиотеку к проекту, лезем в References и ставим галку напротив "Microsoft Scripting Runtime".

!

Большое спасибо. Все работает на ура. Только вот сортировка выдает ошибку, я в программировании слаб, может подскажешь в чем проблема.
 

ploki

Member
Joined
month_5_short 16, 2005
Messages
237
Reaction score
180
Location
Москва
to Kolpak

У меня работало, но я тестил в 2007. Попробуй записать макрос на сортировку столбца ручками (начинаешь запись макроса, выделяешь столбец, нажимаешь кнопку "sort", заканчиваешь запись макроса) и посмотреть, в чём отличия.
 

Kolpak

Member
Joined
month_9_short 24, 2005
Messages
58
Reaction score
11
Age
46
Location
Kazan
to Kolpak

У меня работало, но я тестил в 2007. Попробуй записать макрос на сортировку столбца ручками (начинаешь запись макроса, выделяешь столбец, нажимаешь кнопку "sort", заканчиваешь запись макроса) и посмотреть, в чём отличия.
Сделал как ты сказал в 2003 офисе.
Все заработало. Вот что получилось.
PHP:
'Сортируем стобец
  Range("C1:C20").Select
  Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
  OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
  DataOption1:=xlSortNormal
 

Luj

New member
Joined
month_8_short 13, 2007
Messages
3
Reaction score
0
Всем привет!

Проблемма такая: офис 2003
в общем то все работает на ура, и Формулы там и всякие проверки, но - вот интересное дело. в документе "весит он 2.7 Мб" есть одна страница, как только на нее переходишь, проц грузиться на 50%, при попытке перейти на другую строку или столбец зависания сукунд на 5, формула смешная в столбце и всего одна СУММ() проверил ее - правильная. Больше никаких формул ни объектов нету. при попытке скопировать только таблицу, висит минут 5 потом вставить на чистый документ тоже самое, но всетаки копируется. в новом документе проблемма не исчезает, те же самые тормоза. так же работает еще несколько документов. после чего это случилось, никто мне сказать не может :(
вроде как говорят что после того как эксель исправлял ошибки в файлах, какие ошибки и почему это случилось ,я, не знаю.
кто сталкивался, как решили!? пАмАгиииите. Док важный. как все изменить. объем сами понимаете большой, так бы заставил просто перенабрать.

З/Ы: спасибо за внимание.

вижу вы тут обширно обсуждаете, и решил именно поэтому спросить тут.
 

Luj

New member
Joined
month_8_short 13, 2007
Messages
3
Reaction score
0
немного разобрался, но все же есть вопросы

оказывается, каким то макаром в некоторых документах прописался java script на обновление при изменении.
ясно удалил и все. а как можно его грохнуть сразу во всех файлах??
что-то не нашёл.:(
 

Jasur

Member
Joined
month_12_short 2, 2006
Messages
28
Reaction score
2
Age
41
Нужна помощь с работой массивом и базой данных на excel.
В excel имеются функции
ВПР(искомое_значение;таблица ;номер_столбца ;интервальный_просмотр)
и
ГПР(искомое_значение;таблица ;номер_строки;интервальный_просмотр)
Нужно объединить возможности обоих функций.

файл для примера

В данной книге excell имеются 2 листа. "Данные" и "Результат". На листе "Данные" имеются индексы по столбцам и строкам. На листе "Результат" имеются выборочные индексы по строкам и столбцам. Используя базу данных листа "Данные" необходимо с помощью какой либо функции заполнить лист "Результат".
Очень нужно сделать эту таблицу.
Плиз помогите!!!
 

MiceKholod

Member
Joined
month_5_short 13, 2006
Messages
9
Reaction score
1
Location
МО
кто нибудь сталкивался с такой проблемой в Excel 2007 : в любой ячейке умножаем 850 на 77,1 получаем 100000 , а должно 65563. все производные от этого числа нерабочие
в 2003 все нормально

нашел патч качаю http://www.thevista.ru/page.php?id=9192
 
Last edited by a moderator:

ploki

Member
Joined
month_5_short 16, 2005
Messages
237
Reaction score
180
Location
Москва
to MiceKholod

Неужели у кого-то ещё не стоит SP1?
Да, действительно у некоторых не стоит...
Но не проще ли SP1 поставить?
Он же автоапдейтом ставится с начала декабря...
 
Top