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

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

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

Widok (29-08-2008 13:12): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

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

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


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


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

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 19:48 17-05-2007 | Исправлено: Maz, 22:45 24-02-2017
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Vitus_Bering
    СЧЁТЕСЛИ(C5:K5;"3?") -не работает
    а
    СЧЁТЕСЛИ(C5:K5;"3")-работает

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 14:19 14-02-2008 | Исправлено: ZORRO2005, 14:19 14-02-2008
    Bredun

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос по-прежнему открыт.
    Возможно ли сделать так, чтобы при вставке строки формат и содержимое (или только формат) верхней строки копировался во вставляемую строку?
    Или же это решается только в VBA?

    Всего записей: 134 | Зарегистр. 16-05-2007 | Отправлено: 16:13 14-02-2008
    Vitus_Bering



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

    Цитата:
    СЧЁТЕСЛИ(C5:K5;"3?")-не работает

    СЧЁТЕСЛИ(C5:K5;"3?*")

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 16:30 14-02-2008
    vikkiv



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bredun
    Без VBA вроде-как нельзя, за исключением нескольких простейших примеров когда вставка ведётся в ручную и построчно (поколонно) - т.е. срабатывает автоформатирование, но работает только для одной соседней строки (столбца). Так можно по одной заполнять.
    Другое дело принудительный формат колонны через Format->Cells->Number->Custom или Format->Conditional Formatting

    Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 16:33 14-02-2008
    alex674

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поставил Excel 2007 все супер (SP1 стоит), но когда делаю автофильтр, а потом удаляю выделенные им строки, то  удаляются не только отфильтрованные строки но и те что скрылись при фильтровании. В  Excel 2003 такого не замечал. Кто знает где тут Гейтс порылся?

    Всего записей: 69 | Зарегистр. 21-02-2006 | Отправлено: 17:20 14-02-2008
    gvserg1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток
    Следующий ворос:
    Есть два столбца
    Текст1                    СуммаОбщ1
    подтекст1               подсумма1
    подтекст2               подсумма2
    Текст2                    СуммаОбщ2
    подтекст3               подсумма3
    подтекст4               подсумма4
    Текст1                    СуммаОбщ3
    подтекст5               подсумма5
    подтекст6               подсумма6
     
     
    МОжно ли сделать суммуесли которая бы додавала по признаку Текст значения Второй подсуммы. Например, чтобы суммировало следующие  значения По критерию "Текст1" -  
    подсумма2 и подсумма6?
     
    Спасибо

    Всего записей: 23 | Зарегистр. 30-01-2008 | Отправлено: 17:41 14-02-2008
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gvserg1
    http://slil.ru/25473958

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 18:24 14-02-2008
    gvserg1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZORRO2005,
    вы немного видоизменили начальное условие. Нужно было сделать формулой, так как массивы более чем по 50,000 строк сводились по суммам (и таких значений как Текст1...2 ооочень много.  
    Но все равно спасибо за помощь ))
     
    А вот как все просто решилось...  (лист sheet1)
     
     
    http://slil.ru/25474053

    Всего записей: 23 | Зарегистр. 30-01-2008 | Отправлено: 18:51 14-02-2008 | Исправлено: gvserg1, 18:52 14-02-2008
    lomaxx

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо всем за советы! Завтра на работе опробую...
     
    SergD1973

    Цитата:
    А поясните, что в итоге должно стоять в ячейках этого диапазона?  Не совсем понятно

    Как правильно написал ZORRO2005 мне нужно указать там
    Цитата:
     изготавливается каждая деталь в 3 цехе или нет.  

     

    Всего записей: 20 | Зарегистр. 07-01-2008 | Отправлено: 20:30 14-02-2008
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lomaxx
    http://slil.ru/25475518
    Не получилось у меня без дополнительных столбцов,
    если недостаточно условного форматирования.

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 02:27 15-02-2008
    lomaxx

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vitus_Bering
    Воспользовался вашей формулой, только слегка подправил её и привел к виду:
    =ИЛИ(СЧЁТЕСЛИ(C2:Y2;"3"); СЧЁТЕСЛИ(C2:Y2;"3 *"); СЧЁТЕСЛИ(C2:Y2;"3(*"))
    только есть одна загвоздочка – а если будет слитное написание числа с буквой? Например: 3л или 3kasto
    Не могу сообразить, что надо еще добавить (ПСТР – здесь не поможет?) в формулу (и как?).
     
    SergD1973
    Думаю, что объединение через пробелы возможно мне поможет, но пока хочу попробовать решить проблему с помощью вышеуказанной формулы…
     
    ZORRO2005
    Я как бы только начинаю осваивать Excel, поэтому мне несколько сложно понять некоторые моменты, в частности я практически ничего не понял в вашем последнем файле. Но ваше условное форматирование, с выделением ячеек мне еще в тот раз понравилось, хотя для меня оно в данный момент и не подходит. Но чувствую где-нибудь оно мне скоро пригодиться…  

    Всего записей: 20 | Зарегистр. 07-01-2008 | Отправлено: 19:14 15-02-2008
    vikkiv



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

    Цитата:
    =ИЛИ(СЧЁТЕСЛИ(C2:Y2;"3"); СЧЁТЕСЛИ(C2:Y2;"3 *"); СЧЁТЕСЛИ(C2:Y2;"3(*"))  

     
       А ненужные значения можно исключить тупым перебором ненужных комбинаций например AND NOT ("*30*"v"*31*"v"*32*"v....v"*39*"v....v"*03*"v"*13*"v"*23*"v...v"*93*")
     
       Вот для случая с одной ячейкой:

    Код:
    =AND(COUNTIF(B3;"*3*");NOT(COUNTIF(B3;"*30*"));NOT(COUNTIF(B3;"*31*"));NOT(COUNTIF(B3;"*32*"));NOT(COUNTIF(B3;"*33*"));NOT(COUNTIF(B3;"*34*"));NOT(COUNTIF(B3;"*35*"));NOT(COUNTIF(B3;"*36*"));NOT(COUNTIF(B3;"*37*"));NOT(COUNTIF(B3;"*38*"));NOT(COUNTIF(B3;"*39*"));NOT(COUNTIF(B3;"*03*"));NOT(COUNTIF(B3;"*13*"));NOT(COUNTIF(B3;"*23*"));NOT(COUNTIF(B3;"*43*"));NOT(COUNTIF(B3;"*53*"));NOT(COUNTIF(B3;"*63*"));NOT(COUNTIF(B3;"*73*"));NOT(COUNTIF(B3;"*83*"));NOT(COUNTIF(B3;"*93*")))

     
    (а мoжно-ли серьёзно упростить? Есть-ли текстовый оператор OR (BitWise))
     
    Отлично фильтрует значения типа "3загадки и 33богатыря вместе с 434воронами и 33коровами"
     
     Может есть какой-нибудъ символ заменяющий любую цифру (т.е. что-то вместо "*") - тогда можно написать коротче.
     
    Вот только как отсеять вариант (и нужно-ли) когда тройка там попадается несколько раз - например "3детали3".

    Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 22:48 15-02-2008 | Исправлено: vikkiv, 06:50 16-02-2008
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lomaxx А Вам не кажется, что нужно изменить правила заполнения этой таблицы? В административном порядке обязать при вводе в таблицу номер цеха заполнять по определённым правилам!!! (например, номер цеха должен быть ВСЕГДА в начале и чем нибудь отделён (например дефисом))... Иначе получается, что из плохо организованного ввода приходится городить целый огород сложных, громоздких, малоэффективных и, главное, не 100% работающих формул/функций/макросов... Ведь, по сути, решается задача ИИ - на распознование текста! Да и, честно говоря, меня поражает сам подход к заполнению таблицы - что так за "чудесная" информация?? И какие варианты могут быть? вот, например (текст придуман!), "3.0KASTO" - это в 3м цехе сделано?  
    нет, конечно, я понимаю, народу, который здесь собрался, интересно решить интересную головоломку ;-) Но моё личное мнение - менять нужно подход к заполнению таблицы!!!
    N.B.
    Хотя, если таблица уже есть, заполнена и дальнейшее ёё изменение не предполагается, а какую обработку можно произвести. Но и тогда я бы рекомендовал добавить столбец(столбцы) в которых был бы отдельно номер Вашего цеха №3

    Удачи.
     
    vikkiv а для дробных чисел что будет?..

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 08:41 16-02-2008
    lomaxx

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

    Цитата:
    Код:=AND(COUNTIF(B3;"*3*");NOT(COUNTIF(B3;"*30*"));NOT(COUNTIF(B3;"*31*"));NOT(COUNTIF(B3;"*32*"));NOT(COUNTIF(B3;"*33*"));NOT(COUNTIF(B3;"*34*"));NOT(COUNTIF(B3;"*35*"));NOT(COUNTIF(B3;"*36*"));NOT(COUNTIF(B3;"*37*"));NOT(COUNTIF(B3;"*38*"));NOT(COUNTIF(B3;"*39*"));NOT(COUNTIF(B3;"*03*"));NOT(COUNTIF(B3;"*13*"));NOT(COUNTIF(B3;"*23*"));NOT(COUNTIF(B3;"*43*"));NOT(COUNTIF(B3;"*53*"));NOT(COUNTIF(B3;"*63*"));NOT(COUNTIF(B3;"*73*"));NOT(COUNTIF(B3;"*83*"));NOT(COUNTIF(B3;"*93*")))  

     
    Да уж... обалдеть. Не думал я, что так всё будет ужасно. Представьте что у меня на работе более 30 цехов. И вот так вот перебирать все возможные варианты... В таком случае уж сделать кажеться так как предлагал мне SergD1973:

    Цитата:
    создается один служебный столбик, где вы объединяете через пробел все данные по цехам.
    , а далее с помощью автоформата с выборкой по условию производить отсев...
     
     
    Добавлено:
    SERGE_BLIZNUK

    Цитата:
    А Вам не кажется, что нужно изменить правила заполнения этой таблицы? В административном порядке обязать при вводе в таблицу номер цеха заполнять по определённым правилам!!! (например, номер цеха должен быть ВСЕГДА в начале и чем нибудь отделён (например дефисом))...  

    Да, что-то навроде этого есть. Это второй и последний вид записи. Не так как у меня в примере - каждый цех стоит в отдельной ячейке, а записью:
    9, 25(магн.конт.), 9, 3 ток, 15, 25, 19(обр.шл.), 25, 27, 25 --24
    77, 9(обд;узк), 15(*), 25, 19(**), 15(тр.,аз.), 25, 27, 25 --24
    17(р.), 15, 19, 15ион.аз., 19, 20(*), 19, 20(**), 19, 27, 19 --24
    Чем это поможет?
     

    Цитата:
    В административном порядке обязать при вводе в таблицу номер цеха заполнять по определённым правилам!!!  

    Тоже никак не выйдет. Т.к. есть определенная программа, купленная у белоруссов для ведения производства и т.п. Работают с ней уже лет 5. Соответственно  
    1. Никто ничего переделывать не будет, да и нет прав на изменение программного кода
    2. ВСЕ уже привыкли работать в данном формате
     
    Также, что хотел указать, вдруг кому понадобиться...:
    3лит - 3 цех литьё
    3 шл. - 3 цех шлифовка
    3 kasto - обработка на станке "kasto"
    и так далее...
    Указанный порядок цехов обозначает маршрут обработки  детали. Каждый цех выполняет свою работу и в зависимости от этого он и стоит на указанной позиции (от технологического процесса на обработку).  
     
    P.S. дробных чисел не будет.

    Всего записей: 20 | Зарегистр. 07-01-2008 | Отправлено: 08:49 16-02-2008 | Исправлено: lomaxx, 09:20 16-02-2008
    Vitus_Bering



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

    Цитата:
    а если будет слитное написание числа с буквой?  

    Тоже бился с этим вариантом, но, думаю, с данной формулой это не решаемо.
    Если бы в Excel были активно задействованы регулярные выражения, то эта задача решалась бы очень легко.
    Совершенно прав уважаемый SERGE_BLIZNUK, надо правильно заполнять таблицу, а иначе сами создаёте себе трудности и героически их преодолеваете...

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 09:10 16-02-2008 | Исправлено: Vitus_Bering, 09:18 16-02-2008
    SergD1973

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья! Напишите,пожалуйста,для lomaxx несложную функцию на VBA, которая сначала объединит все ячейки в одну (эта функция уже есть и успешно работает http://slil.ru/25459141, только нужно добавить пробел между объединяемыми ячейками) а потом полученное значение пробежит от первого символа до последнего и если встречается цифра "3" проверит, если перед тройкой и после неё не стоит другая цифра, значит данная функция возвращает ИСТИНА. Если такой отдельно стоящей тройки нет, значит ЛОЖЬ.  
    А хотя зачем городить огород и объединять На VBA можно и каждую ячейку таким образом проверить
     
    Как видно из его объяснения, он не может повлиять на формат ввода данных.  
    Я бы сам написал, но на VBA не силен. Могу только имеющийся пример немного исправлять.

    Всего записей: 17 | Зарегистр. 20-02-2007 | Отправлено: 12:40 16-02-2008 | Исправлено: SergD1973, 12:54 16-02-2008
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SergD1973
    Цитата:
    Друзья! Напишите,пожалуйста,для lomaxx несложную функцию на VBA
    VBA пишется в своем топике

    Всего записей: 22839 | Зарегистр. 19-01-2002 | Отправлено: 12:58 16-02-2008
    vikkiv



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

    Цитата:
    P.S. дробных чисел не будет.  


    Цитата:
    ...в которой построчно(в заданном несортированном диапазоне) нужно каким-то образом найти и показать в ней (строке) наличие конкретного числа...

    В таком случае, а разве задача уже не решена ? Этим:
     

    Код:
    =AND(COUNTIF(B3;"*3*");NOT(COUNTIF(B3;"*30*"));NOT(COUNTIF(B3;"*31*"));NOT(COUNTIF(B3;"*32*"));NOT(COUNTIF(B3;"*33*"));NOT(COUNTIF(B3;"*34*"));NOT(COUNTIF(B3;"*35*"));NOT(COUNTIF(B3;"*36*"));NOT(COUNTIF(B3;"*37*"));NOT(COUNTIF(B3;"*38*"));NOT(COUNTIF(B3;"*39*"));NOT(COUNTIF(B3;"*03*"));NOT(COUNTIF(B3;"*13*"));NOT(COUNTIF(B3;"*23*"));NOT(COUNTIF(B3;"*43*"));NOT(COUNTIF(B3;"*53*"));NOT(COUNTIF(B3;"*63*"));NOT(COUNTIF(B3;"*73*"));NOT(COUNTIF(B3;"*83*"));NOT(COUNTIF(B3;"*93*")))  

     
     
     
    Ведъ стоящую рядом с тройкой цифру отсеяли, добавлять отсев типа *21*, *44* нет необходимости так как в условии ясно сказанно что ищем цифру 3 и отсеиваем её комбинации (о комбинациях других цифр с другими из задания ясно что отсеивать ненадо !!! - так что цехов может быть хоть 999 хоть миллион- они ведъ выраженны цифрами).
     
    Просто
    1) на другом (Sheet2) листе (под или над ним) во всём необходимом диапазоне кроме первой колонны например пишем эту длинную формулу (только как ячейку указываем не "B3" a "'Sheet1'!B3").
    2) В первой колонне (листа на котором нужны результаты) пишем что-то вроде
    Код:
    =COUNTIF('Sheet2'!B3:IV2;"1")

    И всё, нам-же надо найти и выделить строку, а не каждую ячейку. Формула даёт запрашиваемый результат!!! А как его отметить дело вкуса - цветом, цифрой, любым символом...  
    Ведъ полученно количество ячеек в строке которые удовлетворяют искомому условию.
     
    Или сразу готовый результат без промежуточных значений:
    Колонна 3 (ячейка 3): Объединение ячеек в строке (начиная с 4-й колонны) с необходимой длинной (кол-вом колонн) вместо ...... (точек):

    Код:
    =CONCATENATE(C3&D3&E3&F3&G3&H3.........IV3)

    Колонна 2: Результат - длинная формула из начала поста.

    Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 17:02 16-02-2008 | Исправлено: vikkiv, 17:31 16-02-2008
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ВСЕМ кто обсуждает задачу lomaxx
    Выложил ход своих мыслей в файле:
    http://slil.ru/25481276
     
    SergD1973

    Цитата:
    Затем в полученном столбце нужно будет искать цифру 3 и проверять соседние символы, чтобы не были цифрой (чуть выше такой пример уже был).

    Я также мыслил
     

    Цитата:
    напишите,пожалуйста,для lomaxx несложную функцию на VBA, которая сначала объединит все ячейки в одну (эта функция уже есть и успешно работает http://slil.ru/25459141, только нужно добавить пробел между объединяемыми ячейками)

    Возьмите здесь:
    http://slil.ru/25481245
     

    Цитата:
     а потом полученное значение пробежит от первого символа до последнего и если встречается цифра "3" проверит, если перед тройкой и после неё не стоит другая цифра, значит данная функция возвращает ИСТИНА

    А вот здесь проблема!
    если цех 73 будет стоять раньше 3 получим ЛОЖЬ.

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 17:52 16-02-2008 | Исправлено: ZORRO2005, 18:27 16-02-2008
    SergD1973

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

    Цитата:
    А вот здесь проблема!  
    если цех 73 будет стоять раньше 3 получим ЛОЖЬ.

     
    Ну не надо так буквально. В таких случаях обегать до конца "суммированной строки" и ЛОЖЬ возвращать только при достижении конца строки.  
     

    Всего записей: 17 | Зарегистр. 20-02-2007 | Отправлено: 14:01 17-02-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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 3)
    Widok (29-08-2008 13:12): лимит страниц. продолжаем здесь


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru