Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 4)

Модерирует : gyra, Maz

Widok (09-03-2010 13:14): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Просьба к посетителям топика дополнять шапку наиболее часто задаваемыми вопросами со ссылками на ответы
в обязательном порядке

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


    Сумма прописью
  • Надстройка "PROP" (сумма прописью)
  • надстройка Excellerator (c) Michael Zemlanukha & Maxim Shemanarev
  • макрос Num2String


  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format (eng.)
  • Горячие клавиши в Excel (табличка)
     
    Предыдущие ветки топика: Часть 1 | Часть 2 | Часть 3
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот, пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)
     
    Книга Джон Уокенбах "Подробное руководство по созданию формул в Microsoft Office Excel 2002" PDF 34МБ Файлы к книге

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:12 29-08-2008 | Исправлено: Maz, 22:45 24-02-2017
    Leo1000



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ghosty

    Цитата:
    слова расположены в разном порядке

    Если возможно, то имеет смысл их отсортировать. При этом решение задачи становится очевидным.

    ----------
    War never changes...

    Всего записей: 3251 | Зарегистр. 04-02-2003 | Отправлено: 18:15 21-09-2008 | Исправлено: Leo1000, 19:09 21-09-2008
    haruspik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed
    Спасибо за помощь, вопрос решился, наши IT дали наводку на "сливалку" merge-excel))

    Всего записей: 4 | Зарегистр. 13-09-2008 | Отправлено: 19:07 21-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ghosty
    слова на одном листе могут повторяться?
     
    Добавлено:
    а список слов большой?
    а листов много?
    нашел решение если на каждом листе просуммировать строки

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 19:50 21-09-2008
    ghosty



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed

    Цитата:
    слова на одном листе могут повторяться?

    Да, могут.

    Цитата:
    а список слов большой?
    Около 470-ти.
    Цитата:
    а листов много?
    Два листа с одним и тем же набором слов, но порядок следования слов разный.

    Цитата:
    Если возможно, то имеет смысл их отсортировать.
    Я пока так и сделал, но это не очень хорошо, т.к. порядок имеет значение. Добавил оба списка со значениями на один лист, пронумеровал каждый, затем рассортировал по алфавиту, но это может быть только временным решением (чтобы прикинуть, какие будут средние).  
    Думал с помощью сводной таблицы это сделать, но ее нельзя создать на основе двух разных диапазонов...
     
     

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 22:05 21-09-2008
    Bambara



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
           В начале августа завершил первую часть автоматизации. Рабочего времени потрачено - 120 часов чистого из-за тормозов с ноутом. Файл весит 370 Мб. Ноут с оперативкой 256МБ не тянет. Потянул офисный комп с 512МБ оперативки. На входе закачиваю 20 таблиц с оборудованием- на выходе получаю отсортированную таблицу с заданной информацией без использования макросов. В сентябре приступил ко второй части автоматизации.  
             Информация к размышлению. Поставлена такая задача. Даны 2 массива состоящих из N и M "слов" соответственно. "Слово"- выборка R ( количество "букв" R в "словах" не превышает P)элементов из базового набора S элементов (формат элементов задан в ТЗ: пробелы, буквы, цифры, знаки). Базовый набор S элементов отсортирован по определенному логическому признаку ( алфавиту, величине, графике и т.д.), т.е.каждый элемент имеет свой порядковый номер. В 2 массивах встречаются одинаковые "слова". Требуется вывести 2 группы "слов" из 2 массивов, удовлетворяющих условиям ограничения. "Слова" в каждой группе должны быть упорядочены аналогично последовательности S элементов базового набора ( типа слов в словаре по алфавиту).
             От макроса сортирующего слова по алфавиту я отказался (условие полной автоматизации: кнопка нажимается один раз для вывода всех результатов).
             Самое первое решение I уровень: прямое - каждый элемент уже имеет свой ранг-порядковый номер в базовом наборе. Осталось все "слова" привести к общей длине, добавив нулевые элементы, а далее сравнивать по 2 "слова", порядковые номера: первые "буквы", вторые "буквы" и т.д. до "букв" с превышением номера или с последним номером в "слове", если они равны. В результате сравнения- вывод о взаиморасположении 2 "слов"- до или после. Недостаток: большое количество комбинаций сравнения.
             Второе решение II уровня сложности. Как известно любое натуральное число представимо записью из последовательности цифр для различных систем исчисления по основанию 2, 3, 10 и т.д.( двоичная, троичная, десятиричная). Цифры каждого разряда для систем с разными основаниями не превышают его ( для двоичной-0,1; для десятиричной- 0,1,2,3...9 и т.д.). Цифры расчитываются по алгоритму остатка от деления на основание системы. Причем среди 2 чисел большим по величине будет число с большим старшим разрядом. Величина числа не превосходит К ( основание системы) в степени L, где L- (разрядность числа +1).  
             Таким образом для S элементов базового набора выбираем основание- S+1. Результат: каждое "слово" в массиве можно записать одним числом по основанию S+1. Достоинство: одному "слову" соответствует одно число. Недостаток: огромная величина числа, например для базового набора из 33 букв и 10 цифр: основание 33+10+1=44. Если "слово" имеет 12 "букв"( разряды- 0,1,2...11) , то имеем 44 в степени 11 или в десятичной системе: ~ 10 в 18 степени или число с восемнадцатью нулями, количество слов в 2 массивах- N+M, возможно и не скажется на времени обработки результатов компа.  
              Существует и решение III уровня сложности (приводить здесь не буду ввиду ограниченности длины сообщения). Вкратце- это инженерная задача оптимизации. Уменьшается основание системы до минимального 2, вместе с тем увеличивается количество чисел определяющих "слово" до минимально возможного ( для моего базового набора) до 6. Достоинство: относительно небольшие числа.Недостаток: увеличение числа комбинаций сравнения.                      
     

    Всего записей: 14 | Зарегистр. 13-06-2008 | Отправлено: 22:18 21-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ghosty
    Если делать без макросов - вижу такой вариант:
    Отсортировать строки с одинаковыми названия в каждом листе. Выделить каждый вид и получить ячейку "СРЗНАЧ" по каждому виду.
    Потом в третем листе в нужной ячейке написать формулу типа =СРЗНАЧ(A1лист1+A1лист2),
    где A1лист1 - ячейка с резульатом среднеого значения по конкретному слову.
    Потом отсортировать свои строки обратно, при єтом сохранив ссылку срзнач на нужные строки.  
    Правда, как "заставить" результат бегать за строками его составляющих - не в курсе, но думаю - это просто, поспрашивайте спецов.

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 13:33 22-09-2008 | Исправлено: Pravoved90, 13:35 22-09-2008
    dmention

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги, подскажите пожалуйста, как реализовать:
     
    Нужно, чтобы в ячейку можно было ввести только значение из определенного набора (списка).
     
    Делаю через Данные -> Проверка -> Список
     
    В качестве источника Именованный диапазон, т.е. =Имя_диапазаона.
     
    Проблема в том, что для множества файлов необходимо сделать один источник.
     
    А функция "Проверка" не позволяет в качестве источника указать Именованный диапазон из другого файла.
     
    Как это можно обойти?
     
    Может можно, как вариант, как-то "подключить" лист из другой книги, по типу Связанных таблиц в Access?
     
    Или еще есть какие-то способы?

    Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 13:45 22-09-2008
    van23

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как найти 3 максимальных значения из строки данных?

    Всего записей: 1 | Зарегистр. 22-09-2008 | Отправлено: 13:49 22-09-2008
    AuthorR

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    van23
    =НАИБОЛЬШИЙ(F4:F9;1)
    =НАИБОЛЬШИЙ(F4:F9;2)
    =НАИБОЛЬШИЙ(F4:F9;3)

    Всего записей: 164 | Зарегистр. 11-02-2007 | Отправлено: 16:27 22-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dmention
    Как вариант: Скопировать(или через формулу "=")Значения из другой книги в какой нибудь скрытый лист, задать те же имена диапазонов и черпать из него.
    Конечно, если книг безумное множество, придеться повозиться...

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 16:35 22-09-2008
    AuthorR

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ghosty
     
    Если количество цифр известно и размеры диапазонов одинаковы, то:
     
    =(СУММПРОИЗВ(СУММ((Лист1!$B$2:$B$5=B2)*(Лист1!$C$2:$F$5)))+СУММПРОИЗВ(СУММ((Лист2!$B$2:$B$5=B2)*(Лист2!$C$2:$F$5))))/8
     
    в $B$2:$B$5 листа Лист1 и Лист2 находятся кошки, собаки, белки и пр.
    в $C$2:$F$5 листа Лист1 и Лист2 - цифры
     
    /8 - заменить на любое нужное количество цифр
     
     
    Добавлено:
    в B2, соответственно, "Кошка" и т.д.
     
    Добавлено:
    в B2 и ниже (чтобы тянуть)

    Всего записей: 164 | Зарегистр. 11-02-2007 | Отправлено: 16:53 22-09-2008
    Bambara



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
         
    Цитата:
    Есть два листа. На каждом листе набор слов и неких численных значений для этих слов. Наборы слов одинаковы, но слова расположены в разном порядке:  
     
    Лист1:  
    Собака 1 2 4 2 6 7  
    Кошка   2 3 4 5 6 7  
    Корова 3 4 5 6 7 4  
    Белка   4 5 6 7 4 3  
    и т.п.  
     
    Лист2  
    Кошка 2 3 4 5 3 2  
    Белка 4 5 6 3 3 2  
    Корова 7 5 4 3 4 5  
    Собака 3 4 5 6 7 4  
    и т.п.  
     
    Задача: на третьем листе посчитать общее среднее для каждого слова (по двум листам сразу).  

     
          ghosty, я ведь, в принципе, занимаюсь похожей по структуре задачей.  
          Таблица 1.(Список оборудования объединенных логическим признаком №1).
          Объект 1. Оборудование А, С, G, K
          Объект 4. Оборудование А, В, К, L, V
          Объект 8. Оборудование B, G, K, L
           и т.п.
           
           Таблица 2.(Список оборудования объединенных логическим признаком №2).
          Объект 1. Оборудование А, С, L, V
          Объект 2. Оборудование В, К, V
          Объект 8. Оборудование A, K, M, P
          Объект 20. Оборудование С, G, L, V
          и т.п.
     
          Моя задача составить таблицу-  результат объединения 2 заданных со структурой:
          Объект 1. Оборудование A(т1), A(т2), С(т1), С(т2), G, K, L, V,  
      где A(т1) и A(т2)- суть оборудование принадлежащее к общей группе А в таблиц. 1 и 2
          Объект 2. Оборудование В, К, V
          Объект 4. Оборудование А, В, К, L, V
          Объект 8. Оборудование A, B, G, K(т1), K(т2), L, M, P
          Объект 20. Оборудование С, G, L, V
         и т.п.
     
          Т.е. объекты в результирующей таблице должны быть ранжированы согласно порядковому номеру в базового наборе, а также: группы и оборудование в каждой группе. Похожа на задачу расположения элементов массива в порядке возрастания
    (убывания). Задача действительно достаточно сложная, ссылаясь на собственный опыт решения с использованием фильтрации и ограничения с количеством таблиц
    больших 1.  
          Вынужден был заняться полной автоматизацией- надоело копировать из диагностической программы таблицы, форматировать в Word и тратить на один отчет по объекту от 1 до 2 часов, в зависимости от количества оборудования, тем более, что количество объектов только увеличивается.        

    Всего записей: 14 | Зарегистр. 13-06-2008 | Отправлено: 22:43 22-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, Господа. Подскажите, как в макросе записать примерно такое:
    Если А1 = "слово", к цифре в А2 прибавляется 1. Спасибо

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 13:28 23-09-2008 | Исправлено: Pravoved90, 15:29 23-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сделал временный вариант:  
    Например, надо увеличить на 1 цифру в ячейке A1. Создаю макрос: Значение A1 копировать в B1. В A1 пишу формулу B1+1. Тогда при выполнении макроса получаю результат.
    Но мне этот вариант кажеться немного безумным)). подскажите, если знаете лучший способ.

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 15:44 23-09-2008
    dmention

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90
     
    А нельзя чтоли в макросе сразу написать А1 = А1 + 1 ? Или через переменную, зачем через B1 ?
     
     
    Добавлено:
    Pravoved90

    Цитата:
    Как вариант: Скопировать(или через формулу "=")Значения из другой книги в какой нибудь скрытый лист, задать те же имена диапазонов и черпать из него.  
    Конечно, если книг безумное множество, придеться повозиться...

     
    1. Как скрыть лист?
     
    2. Файлов порядка 80.

    Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 16:58 23-09-2008
    GMM

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день.
     
    В ячейках A1:B1, A2:B2, A3:B3 и т. д. указаны диапазоны. Также на листе есть таблица с числами. Числа, попадающие в любой из диапазонов, нужно выделить цветом. Какую формулу для этого нужно вписать в «условном форматировании»? См. скриншот.
     
    Вариант «значение между A1 и В1, а также значение между A2 и В2» не подходит: диапазонов несколько десятков, а условий для форматирования только три.
     
     

    Всего записей: 3 | Зарегистр. 30-12-2005 | Отправлено: 17:02 23-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dmention
    Выпадающий список с данными из другого файла

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 18:34 23-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А нельзя чтоли в макросе сразу написать А1 = А1 + 1

    Я так и хотел вначале сделать - пишет: "циклическое действо". Может, конечно, есть способ это записать иначе, но у меня так..
    Жду ваших предложений..
     
    GMM
    Пишите макрос, и ставьте туда диапозонов хоть миллион. По вопросам написания обращайтесь суда http://forum.ru-board.com/topic.cgi?forum=33&topic=8273&start=2460
     

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 18:49 23-09-2008 | Исправлено: Pravoved90, 18:50 23-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GMM
       
    этот макрос строго завязан на размерах/адресах исходных диапазонов, но при небольшом изменении макрос сам будет определять, где заканчиваются диапазоны
     
    Добавлено:
    или можно самому задать размеры диапазонов если динамическое определение границ не столь важно
     
    Добавлено:
    ghosty
    вот составил формулку для тебя:

    Код:
    =ЕСЛИ(ЕОШИБКА(СРЗНАЧ(ЕСЛИ(ЕОШИБКА(СРЗНАЧЕСЛИ(Лист1!$A$2:$A$5;Лист3!A2;Лист1!$H$2:$H$5));СРЗНАЧЕСЛИ(Лист2!$A$2:$A$5;Лист3!A2;Лист2!$H$2:$H$5);СРЗНАЧЕСЛИ(Лист1!$A$2:$A$5;Лист3!A2;Лист1!$H$2:$H$5));ЕСЛИ(ЕОШИБКА(СРЗНАЧЕСЛИ(Лист2!$A$2:$A$5;Лист3!A2;Лист2!$H$2:$H$5));СРЗНАЧЕСЛИ(Лист1!$A$2:$A$5;Лист3!A2;Лист1!$H$2:$H$5);СРЗНАЧЕСЛИ(Лист2!$A$2:$A$5;Лист3!A2;Лист2!$H$2:$H$5))));0;СРЗНАЧ(ЕСЛИ(ЕОШИБКА(СРЗНАЧЕСЛИ(Лист1!$A$2:$A$5;Лист3!A2;Лист1!$H$2:$H$5));СРЗНАЧЕСЛИ(Лист2!$A$2:$A$5;Лист3!A2;Лист2!$H$2:$H$5);СРЗНАЧЕСЛИ(Лист1!$A$2:$A$5;Лист3!A2;Лист1!$H$2:$H$5));ЕСЛИ(ЕОШИБКА(СРЗНАЧЕСЛИ(Лист2!$A$2:$A$5;Лист3!A2;Лист2!$H$2:$H$5));СРЗНАЧЕСЛИ(Лист1!$A$2:$A$5;Лист3!A2;Лист1!$H$2:$H$5);СРЗНАЧЕСЛИ(Лист2!$A$2:$A$5;Лист3!A2;Лист2!$H$2:$H$5))))
     
    Для оптимального восприятия высылаю исходный файл (Excel2007 выдал предупреждение что возможно в предыдущих версиях Excel не сработает ).  
    Из "промежуточных" действий необходимо на обоих листах для каждой строчки найти ср. значение. Из достоинств "формулки" следует отметить что она правильно посчитает общее  среднее значение если на одном листе будет несколько "собак" или если на одном или на обоих листах не будет "коров". Формула расчитана только на два листа и на большое количество строк на каждом из них. Воть.
     
     
    Добавлено:
    Bambara
    Будь проще! Минут 20 читал для того чтобы понять что нужно сделать. Вообщемто задача сводится к консолидации данных с нескольких листов в один. При помощи формул это не решить. Рекомендую ознакомиться с материалами изложенными здесь, а так же задать свой вопрос в общедоступной форме вот здесь.

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 19:52 23-09-2008 | Исправлено: q1wed, 21:44 23-09-2008
    40rt

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Помогите пожалуйста с такой проблемой - есть порядка 1000 ячеек с числами от -130 до 1000, нужно получить отношение суммы положительных чисел к сумме отрицательных, я только не могу понять как это в эксель посчитать...

    Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 22:24 23-09-2008
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 4)
    Widok (09-03-2010 13:14): Лимит страниц. Продолжаем здесь.


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru