Наши преимущества

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

1. На другом листе (Лист2) делаешь табличку соответствий - 2 столбца : производитель и страна, заполняешь её;
2. в нужной таблице делаешь формулу - ВПР(А1;Лист2!$А$1:$B$4;2;0), где
*"А1" - ссылка на ячейку с производителем,
* "Лист2!$А$1:$B$4" - это таблица соответствий (доллары нужны, чтобы ссылки стали абсолютными - не менялись при размножении формулы),
* 2 - номер столбца подстановки (страна у нас во втором столбце)
* 0 - этот параметр тебе не нужен - просто пусть стоит 0
3. Размножаешь формулу до конца таблицы - и получаешь нужный результат
 
  • Like
Реакции: MIA_
Как убрать пустые ячееки?

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

Заранее спсб.
 
Всем привет. Вопрос: имеется два столбца в них данные, в некоторых строках данные этих столбцов дублируются. Как мне получить общий столбец, но что бы данные не повторялись. Всем заранее спасибо за ответ.
 
to Kolpak

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

Код:
'Процедура добавления информации из заданного диапазона в множество
' (которое у нас эмулируется словарём)
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 секунды!
 
to Kolpak

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

!

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

У меня работало, но я тестил в 2007. Попробуй записать макрос на сортировку столбца ручками (начинаешь запись макроса, выделяешь столбец, нажимаешь кнопку "sort", заканчиваешь запись макроса) и посмотреть, в чём отличия.
 
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
 
Всем привет!

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

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

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

оказывается, каким то макаром в некоторых документах прописался java script на обновление при изменении.
ясно удалил и все. а как можно его грохнуть сразу во всех файлах??
что-то не нашёл.:(
 
Нужна помощь с работой массивом и базой данных на excel.
В excel имеются функции
ВПР(искомое_значение;таблица ;номер_столбца ;интервальный_просмотр)
и
ГПР(искомое_значение;таблица ;номер_строки;интервальный_просмотр)
Нужно объединить возможности обоих функций.

файл для примера Как увидеть ссылки? | How to see hidden links?
 
кто нибудь сталкивался с такой проблемой в Excel 2007 : в любой ячейке умножаем 850 на 77,1 получаем 100000 , а должно 65563. все производные от этого числа нерабочие
в 2003 все нормально

нашел патч качаю Как увидеть ссылки? | How to see hidden links?
 
Последнее редактирование модератором:
to MiceKholod

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