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

reesly

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

MIA_

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

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

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

MIA_

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

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

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

Ashcraft

Member
Joined
Jul 17, 2004
Messages
39
Reaction score
0
Age
46
В стандартных функциях экселя я не силен, поэтому мне легче сделать такую задачу макросом примерно такого вида:
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
Mar 14, 2005
Messages
71
Reaction score
10
Age
46
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
Sep 3, 2005
Messages
33
Reaction score
4
Age
43
Location
Татарстан
1. На другом листе (Лист2) делаешь табличку соответствий - 2 столбца : производитель и страна, заполняешь её;
2. в нужной таблице делаешь формулу - ВПР(А1;Лист2!$А$1:$B$4;2;0), где
*"А1" - ссылка на ячейку с производителем,
* "Лист2!$А$1:$B$4" - это таблица соответствий (доллары нужны, чтобы ссылки стали абсолютными - не менялись при размножении формулы),
* 2 - номер столбца подстановки (страна у нас во втором столбце)
* 0 - этот параметр тебе не нужен - просто пусть стоит 0
3. Размножаешь формулу до конца таблицы - и получаешь нужный результат
 

MIA_

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

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

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

Kolpak

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

ploki

Member
Joined
May 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
Sep 24, 2005
Messages
58
Reaction score
11
Age
44
Location
Kazan
to Kolpak

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

!

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

ploki

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

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

Kolpak

Member
Joined
Sep 24, 2005
Messages
58
Reaction score
11
Age
44
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
Aug 13, 2007
Messages
3
Reaction score
0
Всем привет!

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

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

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

Luj

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

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

Jasur

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

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

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

MiceKholod

Member
Joined
May 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
May 16, 2005
Messages
237
Reaction score
180
Location
Москва
to MiceKholod

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