Ответы пользователя по тегу Excel
  • Как установить марос в Ecel так, чтоб он показывал дату изменения данных в нескольких столбцах?

    KEugene
    @KEugene
    Так оно все правильно делает. Смещение идет не куда попало, а на 5 столбцов вправо относительно текущей ячейки cell. Просто возьмите номер строки этой ячейки row и впишите в Range("O"&row).Value.
    Либо анализировать каждый диапазон пересечения (If Not Intersect(cell, Range("J4:J200, ...) со своим собственным смещением. Например, для J4:J200 будет Offset(0, 5), для G4:G200 - Offset(0, 8) и т.д.
    Ответ написан
    Комментировать
  • Как хранить записи "один ко многим" в Excel?

    KEugene
    @KEugene
    Обычная таблица, типа лога звоноков: Клиент|Дата звонка. Если набирается вручную, то хорошо бы сделать отдельно список этих клиентов, чтобы в логе выбирались значения из выпадающего списка, иначе наверняка будут очепятки. По такой таблице всегда можно сделать анализ/отчет либо вручную, либо сводной таблицей.
    Ответ написан
  • Как автоматизировать разбор текста в ячейках excel?

    KEugene
    @KEugene
    Макрос повлияет на исходную таблицу. Ведь на каждую запись (событие) отводится две строки, а в результате должна быть одна. Таким образом, исходные данные (половина) будетут утеряны, когда макрос удалит каждую вторую строку. Тут лучше использовать формулы и полученную таблицу потом куда-то скопировать (если нужна, например, для печати). Если же она необходима, как источник данных, то на пустые строки можно не обращать внимания.
    Ответ написан
    Комментировать
  • Как создать сайт, который будет использовать за основу Excel с макросами, хранящимся на сервере (ASP?)?

    KEugene
    @KEugene
    Извините, но в том виде, что вы хотите, решения нет. Нельзя превратить экселевскую книгу в сайт. Даже если ее использовать в качестве расчетной машины (эдакий "черный ящик"), т.е. сайт (вэб-интерфейс) берет у пользователя значения переменных, загружает объект, как вам советовал Александр, передает ему через COM данные и берет новые значения для вывода с третьего листа, это не сработает из-за макросов. Формулы в Excel.Application будут работать без проблем, но не VBA.
    Даже если переписать книгу лишь на встроенных формулах, вам придется столкнуться с необходимостью выбирать лишь хостинг, работающий на windows. Да еще и предоставляющий необходимый СОМ объект.
    Быстрее и дешевле будет найти студента, владеющего VBA и, например, C#. В принципе, серверный язык уже зависит от платформы хостера (хоть PHP, Perl или даже JavaScript, что уже вообще ни от чего не зависит).
    Ответ написан
    Комментировать
  • Как занести значения выделенных ячеек в массив?

    KEugene
    @KEugene
    Выделяем диапазон для занесения

    DIm DataCell as Range
    
    On Error Resume Next
    For Each DataCell in Selection
        If DataCell.Value<>0 Then 'При условии, что значения могут быть только числовые. Иначе делаем проверки или, как я, забиваем на них с помощью On Error Resume Next
            'Приченяем добро: добавляем данные в динамический массив, в коллекцию, в другие ячейки и т.п.
        End If
    Next
    Ответ написан
    Комментировать
  • VBA Excel 2016. Как менять в ComboBox список по диапазону с помощью двух переключателей OptionButton?

    KEugene
    @KEugene
    Надо использовать элементы из группы Form Controls.
    Тогда все работает. Например, добавил выпадающий список и программно меняем его свойства:
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
        ActiveSheet.Shapes.Range(Array("Drop Down 1")).Select
        With Selection
            .ListFillRange = "$A$1:$A$3"
            .LinkedCell = ""
            .DropDownLines = 8
            .Display3DShading = False
        End With
    End Sub
    Ответ написан
    Комментировать
  • Как в excel скрыть столбец при условии?

    KEugene
    @KEugene
    Просто сделать условным форматированием.
    Если в данном столбце в строке 9 значение равно нулю, то во всех ячеках колонки текст белый, заливка отстутсвует, границы отсутствуют. Все, на печати будет пусто.
    Второе условие прописывать не надо. Если не ноль - то картинка будет такая, как нарисовал художник :)
    Ответ написан
  • Нужно найти программные средства взаимодействия с EXEL и 1C, можно ли программно выгружать из 1C?

    KEugene
    @KEugene
    "Мсье знает толк..." (С)
    По-моему, даже в руководстве пользователя 1С приводятся примеры с созданием объекта Эксель прямо кодом 1С. Ну и дальше уже VBA в рамках созданного объекта. То есть "внутренних средств" более чем достаточно для реализации абсолютно любого взаимодействия.
    Если, конечно, прикрутить сюда С# не является изначально обязательным условием...
    Ответ написан
    Комментировать
  • Как экспортировать большие данные в excel?

    KEugene
    @KEugene
    Просто на всякий случай добавлю, что современная версия Excel прекрасно может брать данные прямо из MySQL. Может, ну его, "промежуточные звенья"?...
    Ответ написан
  • Язык программирования для работы с Excel?

    KEugene
    @KEugene
    Мне кажется тут с экселем смешивается мягкое и теплое. Если вам надо "обертку" для работы с эксель, то это один вариант (тут можно долго искать и выбирать, что позволит решать те или иные задачи и какие есть мануалы). Если же вам главное получить доступ к объектной модели, то тут все равно, какая библиотека и что она может, лишь бы создавался объект (в том числе и приложение эксель), а методы и функции - полный набор от майкрософт ("через точку", можно даже подсмотреть в офисном VBE) с описанием "от производителя".
    Ответ написан
    Комментировать
  • Как применить функцию к каждому столбцу из диапазона excel суммируя результат?

    KEugene
    @KEugene
    Добрый день.
    Мне кажется вы немного лишнее сделали. Можно по столбцам подбить разницу и применить к ней функцию ЧАС(). Потом сложить все результаты. Или если надо вместить все в одну ячейку, то используем формулу массива.
    5c1b54c56b465989146415.png5c1b54d4078f5272039449.png
    Ответ написан
    Комментировать
  • Какой формулой в Excel можно это рассчитать?

    KEugene
    @KEugene
    Это решается не так уж и сложно с помощью надстройки "Поиск решения". В интернете довольно много примеров подобных вашему.
    Ответ написан
    Комментировать
  • Как создать сервис на основе геоданных?

    KEugene
    @KEugene
    Добрый день.
    Вы не уточнили важный вопрос: каковы финансовые возможности.
    Систему, которцю вы хотите внедрить, не по силам создать одиночке в адекватные сроки. Собственно, это даже и не программа, а целый проект электронного документооборота с привязкой к геоданным. Если ресурсы ограничены, то ваш вариант - 1С, как уже написал Александр. Если же хотите сделать правильно, то ищите локального консультатна (компанию) по внедрению подобных систем. Думаю, предварительная встреча будет бесплатной, но вы, хотябы, получите представление о сроках реализации и масштабах затрат.
    Ответ написан
    Комментировать
  • Почему формула не применяется?

    KEugene
    @KEugene
    А в Параметрах вычислений стоит "Автоматически"? Другие формулы работают?
    Ответ написан
    Комментировать
  • Можно ли получать данные из Viber макросом в Excel?

    KEugene
    @KEugene
    С 16 версии в экселе появились интересные функции ВЕБСЛУЖБА и ФИЛЬТР.XML. И, конечно, куча вариантов по запросам, в том числе и из интернета. Это без VBA.
    Ну а если надо все сложно, то через макрос почти все можно сделать. В крайнем случае, можно и прямой вызов функции dll осуществить.
    Ответ написан
    Комментировать
  • XlsxWriter. Описание рабочей книги/листов/таблиц в виде класса?

    KEugene
    @KEugene
    Хм... что-то не то.
    Вот пример с сайта https://xlsxwriter.readthedocs.io/

    import xlsxwriter
    
    # Create a workbook and add a worksheet.
    workbook = xlsxwriter.Workbook('Expenses01.xlsx')
    worksheet = workbook.add_worksheet()
    
    # Some data we want to write to the worksheet.
    expenses = (
        ['Rent', 1000],
        ['Gas',   100],
        ['Food',  300],
        ['Gym',    50],
    )
    
    # Start from the first cell. Rows and columns are zero indexed.
    row = 0
    col = 0
    
    # Iterate over the data and write it out row by row.
    for item, cost in (expenses):
        worksheet.write(row, col,     item)
        worksheet.write(row, col + 1, cost)
        row += 1
    
    # Write a total using a formula.
    worksheet.write(row, 0, 'Total')
    worksheet.write(row, 1, '=SUM(B1:B4)')
    
    workbook.close()


    Создали книгу.
    Добавили лист. Лист этот и есть набор ячеек.
    Все, дальше, практически, как в VBA. Можо "поячеечно" задавать значения. Можно попробовать прямо массивом (там же пример с пандой).
    import pandas as pd
    
    # Create a Pandas dataframe from the data.
    df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
    
    # Create a Pandas Excel writer using XlsxWriter as the engine.
    writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
    
    # Convert the dataframe to an XlsxWriter Excel object.
    df.to_excel(writer, sheet_name='Sheet1')
    
    # Close the Pandas Excel writer and output the Excel file.
    writer.save()


    Куда еще проще?
    Ответ написан
  • Как автоматически создать Excel таблицу по заполненной форме?

    KEugene
    @KEugene
    Если нужна форма для внесения данных и нет желания учить язык или платить, то можно использовать Access, где есть возможность создать форму ввода (ну немного придется почитать). Если использование экселя принципиально, то потом можно из него подключиться к этой базе в пару кликов.
    Ответ написан
    Комментировать
  • Как в Excel посчитать сумму с условием?

    KEugene
    @KEugene
    Так и пишем:
    =((A1+B1)>15)*((A1+B1+C1)>10)*(A1+B1+C1)
    Умножение играет роль логтческого И: если условие в скобках выполняется, то значение равно 1. Соответственно при рассчитывваемых значениях будет 1*1*(А1+В1+С1).
    Но вам не кажется, что если там нет отрицательных чисел, то второе условие избыточно?
    Ответ написан
  • Формула. Как получить диапазон листов с условием в Excel?

    KEugene
    @KEugene
    Допустим, у нас есть два листа:
    Лист1
    Лист2
    На листе Лист1 в А1 пишем "Лист2" без кавычек.
    На листе Лист2 в А1 пише "ФФФ" без кавычек
    На листе Лист1 в А2 пишем формулу
    =ДВССЫЛ(A1&"!A1")
    Получаем в ячейке значение ФФФ.

    Оно? А то вопрос не совсем понятен...
    Ответ написан
    2 комментария
  • Сбились связи в Excel?

    KEugene
    @KEugene
    Раньше документ открывался с одной вкладки, теперь он открывается с другой вкладки


    Он открывается с того листа, на котором происходило последнее сохранение. Если там сидит макрос, который активирует некий лист принудительно при открытии, то, скорее всего, этот макрос не работает.

    При копировании колонки из одной вкладки и попытки вставить в другую...

    Проверьте, нет ли скрытых строк (за одно и колонок) на листе-источнике, они могут быть и именно скрыты, и сжаты по высоте в ручную до нуля - зрительно они невидимы, но их отображение потребует разных манипуляций.
    Ответ написан
    1 комментарий