Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Автоматическая Нумерация документа при печати
 
Sanja, не перестаю удивляться гениальности! Спасибо!
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Сергей, спасибо огромное!
Буду натаскиваться. Сейчас как раз пока в поиске работы, время будет!
Всем спасибо! Дальше я сам!
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Цитата
The_Prist написал:
Поэтому валить все на незнание как-то не очень вежливо, когда используете подобные решения.
Я извиняюсь, если что. Не хотел. Я ж все-таки логист по профессии, про UDF как-то непроассоциировал! )))
К стати, спасибо за ссылку!
Изменено: Сергей Сахаров - 30 Сен 2016 19:06:44
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Цитата
vikttur написал: Независимо от способа решения, разные данные в разных диапазонах - это правильно.
Я с этим полностью согласен, но есть человек, которому нужен ОТЧЕТ. И если в отчет тянуть все столбцы с данными, то он получается нечитабельный. Особенно если принять во внимание, что часть ячеек пустая... И вот поэтому такая засада... На мой взгляд так вообще лучше сводки ничего не придумать! )))
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Сергей, а я что-то такой не нахожу... Где взять? Ехель не дает мне такой функции...
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
bedvit, спасибо! Я еще сам ща подумаю, как можно решить. Может как-нить обойти... Типа данные же все в разных столбцах. Может к ним как-то привяжусь.
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Коллеги, я сам не справлюсь с VBA. Мои познания крайне малы в этом вопросе. Я даже не знаю что такое UDF  :oops: Если это Universl Disk Format, то я не понимаю словосочетания "через UDF"...
bedvit, я посмотрел ветку, код в файле, но как это прикрутить к моей задаче нифхурил...
Может кусочек кода? Маленький, но понятный...
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Sanja, видимо да. Только функция ЯЧЕЙКА что-то не отличает формат 100,00 USD от 100,00 EUR. Она говорит, что и там и тут формат ",2".
Или это не форматом называется...
Лишь стремясь к невозможному, можно достичь максимального.
Учет формата ячейки (вид валюты) при подсчетах
 
Уважаемые господа специалисты!
Есть задача: вернуть результат формулы, который должен зависеть от формата ячейки. Т.е. есть три столбца с суммами в разных валютах.
Требуется в отдельную ячейку записать формат ячейки, а именно валюту.
Это как-то возможно реализовать?
Я вижу это как-то так:
Код
=ЕСЛИ(формат С1=USD; USD; второе условие) и т.д.
В приложении файл с примером.
Изменено: Сергей Сахаров - 30 Сен 2016 18:10:32
Лишь стремясь к невозможному, можно достичь максимального.
Вычисление значения по многим параметрам в VBA, Создание функции, вычисляющей значение по множеству параметров.
 
tkachev.al, да. Я эту ветку читал, ковырял, но что-то мне не понравилось. Мне Select Case и Казанский, весьма помогли! Получилось, на мой взгляд, неплохо. Иглавное работает!!!  :D
Код
Function LUW(Weight_ц, Vol_cbm, CargoType, Pallet)
Dim Rate_min, Rate_upto10k, Rate_more10k, Rate_nopal, Rate_st_pal, Rate_st_nopal As Currency
Rate_min = Sheets("Crocus for HMS").Range("EX_MIN")
Rate_upto10k = Sheets("Crocus for HMS").Range("EX_up2_10K")
Rate_more10k = Sheets("Crocus for HMS").Range("EX_over_10K")
Rate_nopal = Sheets("Crocus for HMS").Range("EX_NO_PAL")
Rate_st_pal = Sheets("Crocus for HMS").Range("STND")
Rate_st_nopal = Sheets("Crocus for HMS").Range("STND_NO_PAL")
Select Case Pallet
        Case True
            Select Case CargoType
                    Case 1
                    LUW = IIf(Weight_ц <= 2, Rate_min, IIf(Weight_ц < 100, Weight_ц * Rate_upto10k, Weight_ц * Rate_more10k))
                    Case 2
                    LUW = Vol_cbm * Rate_st_pal
            End Select
        Case False
                    Select Case CargoType
                        Case 1
                        LUW = Weight_ц * Rate_nopal
                        Case 2
                        LUW = Vol_cbm * Rate_st_nopal
                    End Select            
End Select

End Function
Изменено: Сергей Сахаров - 25 Фев 2016 19:48:35
Лишь стремясь к невозможному, можно достичь максимального.
Вычисление значения по многим параметрам в VBA, Создание функции, вычисляющей значение по множеству параметров.
 
Казанский, спасибо! Короче учиться мне еще и учиться. Надо матчасть изучить. Я про Select Case вообще не знал.
Изменено: Сергей Сахаров - 25 Фев 2016 18:26:44
Лишь стремясь к невозможному, можно достичь максимального.
Вычисление значения по многим параметрам в VBA, Создание функции, вычисляющей значение по множеству параметров.
 
Влад, вариант. Мне почему-то это  вголову не пришло... Наверное потму, что хотел заставить программный код делать эту линейную таблицу соответствий...
А вот как избежать повторения условия отбора? Что бы 2 раза не проверять одно и тоже.
Изменено: Сергей Сахаров - 25 Фев 2016 12:07:57
Лишь стремясь к невозможному, можно достичь максимального.
Вычисление значения по многим параметрам в VBA, Создание функции, вычисляющей значение по множеству параметров.
 
Приветствую всех!
Снова мой неугомонный моск не дает мне покоя. Перечитал все доступные заголовки, не смог правильно сформулировать поисковый запрос поэтому рискнул создать новую тему. Имеется задача: вычислить значение исходя из множества параметров.
Пример:
Вычислить стоимость разгрузки груза. Груз может весить до 10 тонн и больше 10 тонн, может быть деревянный или железный, на паллетах или навалом, на колесах или не на колесах, в контейнере или не в контейнере и еще ряд параметров. на каждый вид груза и каждое сочетание имеется своя цена.
Я решил сделать функцию на VBA, которая будет перебирать все параметры IF-Else – ами и в зависимости от сочетания производить вычисления.
Код
Function LUW(Вес, ТипГруза, НаПаллете, Самоход, Контейнер, Ставка_дер_до10т, Ставка_дер_больше10т, Ставка_железный, Ставка_безпалета…. и там далее все аргументы и ставки)
 
If ТипГруза = 1 Then                 ‘ как бы 1 – это деревянный. Если груз деревянный, ТО
   If НаПаллете = True Then             ‘ проверяем на паллете он или нет, Если да, ТО
      If Вес <= 10 Then                    ‘ проверяем сколько весит. Если меньше 10 т, ТО
      LUW = Вес * Ставка_дер_до10т          ‘соответствующая ставка умножается на вес
      Else: LUW = Вес * Ставка_дер_больше10т   ‘ если больше 10 т, то другая ставка
      End If
   Else: LUW = Вес * Ставка_безпалета ‘ если деревянный груз без паллета
   End If
Else: LUW = … ‘Если груз НЕ ДЕРЕВЯННЫЙ… Вот тут и ступор. Получается нужно обращаться опять к условию проверки «На_паллете» и я начинаю тупить…
End If
 
End Function
И еще, получается, что при моей логике у функции 24!!! аргумента. В целом это не большая проблема, но может кто-нить знает более изящное решение?
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
RAN, ну затупил... С кем не бывает? :)
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
Цитата
Hugo написал:
Но что и по какому критерию понадобилось сцеплять, откуда и куда (конкретно адреса ячеек!!!) - так и не рассказали.
Виноват! Исправляюсь! :)
На листе tblShipmentsIN имеется стобец О с номерами инвойсов и столбец AI с номерами накладных. Как я говорил ранее по одной накладной может следовать несколько грузов с разными инвойсами.
На листе CMR есть ячейка Н3, в которой указывается номер СМР, и есть ячейка С23, в которой должны быть перечислены все инвойсы, которые едут с этой накладной.
Так понятно?
А можно попросить ссылочку на VLOOKUPCOUPLE().
Насколько я понимаю разницу, все ВПРы ищут критерий исключительно в первом стобце массива, а СЦЕПИТЬЕСЛИ на этом не заморачивается.
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
Цитата
Hugo написал: Но что такое цмп или смр, где его искать и что за инвойсы?...
CMR - это международная транспортная накладная. В файле с примером 3 листа. Вторым листом идет CMR. А номера инвойсов на первом листе в колонке "Invoice"
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
Hugo, в СМР надо перечислить все инвойсы, которые с ней едут. Решение, подсказанное The_Prist, работает как нельзя лучше! Функция ищет в общем массиве необходимый номер и сцепляет все номера инвойсов, которые находятся в одной строке с нужным номером СМР.
А VLOOKUPCOUPLE() я тоже посмотрю. Спасибо.
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
РАБОТАЕТ!!!!! Я о таком даже не мечтал!!!!
The_Prist, спасибо огромное!!!
Изменено: Сергей Сахаров - 10 Фев 2016 16:50:33
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
Ух ты ж!!! Ща попробую! Так-то вроде по описанию подходит. Поиграюсь, отпишусь! Спасибо за наводку!
Изменено: Сергей Сахаров - 10 Фев 2016 15:25:03
Лишь стремясь к невозможному, можно достичь максимального.
Написать цикл в пользовательскую функцию, прошу помощи
 
Уважаемые товарищи специалисты!
Я наивно полагал, что справлюсь сам, но EXCELL и VBA остудили мой пыл и я залип. Имеется некий массив данных, на основе которых автозаполняются различные формы и документы. В частности международная транспортная накладная СМР.
Чего я хотел:
Чтобы ВПР искала в сводной таблице номер СМР и брала оттуда данные для заполнения граф.
Столкнулся с проблемой, когда по одной СМР едет несколько грузов и каждый со своим идентификатором (инвойсом). Решил накалапуцать пользовательскую функцию.
Функция должна просматривать данные в сводной таблице по определенному столбцу, находить все значения и сцеплять их между собой через запятую.
Понимаю, что нужно писать цикл, а именно с ним у меня и возникли проблемы… Не умею, как оказалось.
Помогите плиз.
Пример во вложении.
Лишь стремясь к невозможному, можно достичь максимального.
Условное форматирование работает наоборот, При включении условного форматирования на листе "по формуле" форматируется совсем не то, что нужно
 
Эвона как... Век живи, век учись! Спасибо!
Когда знаешь, все просто! :)
Лишь стремясь к невозможному, можно достичь максимального.
Условное форматирование работает наоборот, При включении условного форматирования на листе "по формуле" форматируется совсем не то, что нужно
 
Z,  так ведь идея была применить это ко всему столбцу...
Влад, с таким условием все заработало. Тут же родился вопрос: почему такое условие? Почему не работает простое равенство? В видеоуроке "Подсветка дат и сроков" все работает с простым равенством и неравенством. Или это связано с форматом числа?
Я в жесточайшем затупе...
Лишь стремясь к невозможному, можно достичь максимального.
Условное форматирование работает наоборот, При включении условного форматирования на листе "по формуле" форматируется совсем не то, что нужно
 
Уважаемые господа форумчане,
вопрос кажется детским, но я что-то решить не могу. В приложенном примере файл с датами и некими числами. Идея такова, что если число в столбце В равно числу в столбце D то ячейка напротив этих чисел в столбце Е заливается зеленью. По факту получается все наоборот... Где косяк?
Лишь стремясь к невозможному, можно достичь максимального.
Механизм работы СВЯЗАННЫХ ТАБЛИЦ в MS Excel, как должен релизоваться результат связи между таблицами?
 
Вот же ж какая неприятность... Спасибо за инфу, буду осваивать PowerPivot.

Всем спасибо за участие. Полагаю вопрос исчерпан.
Лишь стремясь к невозможному, можно достичь максимального.
Механизм работы СВЯЗАННЫХ ТАБЛИЦ в MS Excel, как должен релизоваться результат связи между таблицами?
 
Vladimir_,  закручено через известное место в "живом" файле! :) А это простой пример (с ударением на слове "простой").  :)
Если честно, то я не понял как работает функция "ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ"... Если пытаюсь вставить все руками согласно логике функции, то #Н/Д, если тупо перебиваю из картинки в примере, то #ССЫЛКА.
Она нормально работает, когда я пыьаюсь получить ОБЩИЕ ИТОГОВЫЕ данные, а тут-то нужны промежуточные. А как работают ПРОМЕЖУТОЧНЫЕ ИТОГИ я тоже не понимаю...

TheBestOfTheBest, под связями я понимаю некое взаимоотношение данных в двух (или более) таблицах как в MS Access.

[img]file:///E:/Cloud/Pictures/Screenshots/Relations.png[/img]Я о них узнал случайно, когда пытался сделать одну сводку из нескольких источников. И тут мне Excell сообщил, что нехило было бы создать связь между таблицами и тогда будет мне счастье. Я повелся, как лох, но никаких бонусов и ништяков не заметил.

Но зерно сомнений во мне зародилось! Вот я и подумал, раз есть "связи", то может можно обойтись без ВПР-а и сводных таблиц?

Но пока это зерно только растет и укрепляется, потому как данный инструмент не особо освещен... Пичальбида...
Изменено: Сергей Сахаров - 21 Июн 2015 20:20:54
Лишь стремясь к невозможному, можно достичь максимального.
Механизм работы СВЯЗАННЫХ ТАБЛИЦ в MS Excel, как должен релизоваться результат связи между таблицами?
 
Уважаемые форумчане!
Перелопатил я практически весь сайт, включая "Форум", "Приемы" и "Видеоуроки", но нигде не обнаружил ответ на свой, казалось бы элементарный, вопрос. Во всех постах, в которых речь идет о связанных таблицах, пользователи прекрасно понимают КАК ЭТО РАБОТАЕТ, и пытаются реализовать уже более сложные вещи.
Вопрос до боли простой:
есть две таблицы на разных листах. В одну таблицу заносятся все данные по туристу, включая общую стоимость тура. Но туристы приносят деньги разными частями и в разное время. Для учета того, что они принесли имеется вторая таблица.
Раньше все  данные из второй таблицы собирались в сводке и с помощью ВПР тянулись в определенный столбец первой таблицы.
Как-то можно это реализовать при помощи связи и без ВПР?
Связи созданы, но результатов я почему-то не вижу...
Файл с примером во вложении.

Я заранее прощу прощения, если данная тема уже обсуждалась. Тогда дайте пожалуйста ссылку на неё.
Лишь стремясь к невозможному, можно достичь максимального.
Установка фильтров по всем сводным таблицам в книге с помощью VBA
 
Ну да, тоже здорово. Но в предыдущем коде кол-во таблиц, на мой не профессиональный взгляд, вообще не ограничено. Там цикл перебирает ВСЕ сводки на листе.
Или я ошибаюсь?
Лишь стремясь к невозможному, можно достичь максимального.
Установка фильтров по всем сводным таблицам в книге с помощью VBA
 
Цитата
Михаил Лебедев написал: Dim pvtTbl As PivotTable
К стати, если на листе появляется вторая сводка, то код не работает... А судя по циклу должен бы...
Пичальбида... :(

А теперь работает... Что-то я нивхурил...
Изменено: Сергей Сахаров - 21 Июн 2015 20:56:19
Лишь стремясь к невозможному, можно достичь максимального.
Установка фильтров по всем сводным таблицам в книге с помощью VBA
 
Михаил, так-то конечно выглядит лучше. А не сочтите за грубость (не шибко я силен в VBA), что означает синтаксис ".CurrentPage=_" ? Или это перенос строки? Я уперся в "нижнее подчеркивание".
Лишь стремясь к невозможному, можно достичь максимального.
Установка фильтров по всем сводным таблицам в книге с помощью VBA
 
Неужели так никто не откликнулся за 2 года?!
К стати код работает! Мне пригодился. Спасибо.
Лишь стремясь к невозможному, можно достичь максимального.
Страницы: 1
Наверх