Ответы пользователя по тегу Excel
  • Каким редактором для редактирования csv-файлов вы пользуетесь?

    x67
    @x67
    Из графических редакторов excel в приоритете
    Почти ничем не хуже libreoffice calc - открытый и бесплатный аналог экселя
    Если прямо отвечать на вопрос, то еще использую visual studio code - текстовый редактор. Там удобнее работать с регулярными выражениями и восстанавливать "сломанный" csv

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

    x67
    @x67
    Да, сводную
    Строки - никнеймы, значения - никнеймы
    Ответ написан
    Комментировать
  • Как в Excel посчитать сумму с условием?

    x67
    @x67
    =If(or(a1+b1>15;a1+b1+c1>10);sum(a1:c1);"условия не выполняются")
    Если эксель на русском, то формулы надо писать на русском: Если, Или, Сумм
    Ответ написан
    3 комментария
  • Как в Excel построить диаграмму по этой таблице?

    x67
    @x67
    Сортировка по Х -> X У диаграмма в точечном виде -> Линия тренда. Увидим как распределение, разброс, так и саму зависимость.
    Или
    Сводная таблица -> в строках позиция, в данных СТР, данные усредняем -> любая удобная диаграмма. Увидим усредненную зависимость, если таковая имеется.

    Еще варик неграфического анализа:
    Функция =коррел() -> в качестве параметров оба столбца -> чем ближе число к 1 или -1, тем больше связь. Но тут мб потребуется нормализация данных
    Ответ написан
    Комментировать
  • Как очистить значения других ячеек при очистке ячейки в ms excel?

    x67
    @x67
    Да, в excel есть события. Подстрой код Elvis под свой случай. Условие должно быть вроде if selection.column=1 and selection.value="" then range(тут сам рэйндж).clearcontents
    А постоянно селектить(выбирать) рейндж для удаления не нужно - это совершенно лишнее телодвижение.
    Еще бы неплохо проверять выделение на количество ячеек.

    Private Sub Worksheet_Change(ByVal Target As Range)
    For Each t In Target
        If t.Column = 1 And t.Value = "" Then
            Range("H" & t.Row).ClearContents
            Range("Q" & t.Row).ClearContents
        End If
    Next t
    End Sub
    Ответ написан
    4 комментария
  • Как создать график обедов и перерывов сотрудников?

    x67
    @x67
    С помощью формул или макросов. Как работают формулы и макросы рассказывать не буду, это тема не одного ответ.
    Советую вам отдать задание на аутсорс.
    Плюсы: задание выполнит профессионал; задание будет выполнено быстрее, чем если вы сами будете изучать эту тему; вам понравится результат, вы захотите чтобы он еще что то сделал, ведь раньше вы тратили кучу времени, а теперь это дело 2 минут.
    Минусы: это будет стоить денег; вы не откроете внутри себя прекрасный мир автоматизации рутинных процессов.
    Ответ написан
    Комментировать
  • Есть ли альтернатива Excel?

    x67
    @x67
    Есть несколько базовых советов, которые помогут оптимизировать вба макросы (если интересует этот путь, напишите, позже скину, хотя можете и сами найти на тостере или stackoverflow), сделав их быстрее, но все равно excel не про бигдату. Даже решив проблему сейчас, вы вернетесь к ней через полгода. А когда заканчивается excel, начинается разработка.
    Что вам нужно (универсальное решение):
    1. База данных(там очень эффективно хранятся циферки и буковки), например postgreSQL
    Бэкенд - серверная часть со всеми расчетами, а также интеграцией в разные другие сервисы (например, 1с, гугль аналитикс, сайт с погодой) написать можно например на питоне
    Фронтенд - красивая страничка в браузере, куда удобно вводить данные и откуда их удобно смотреть, например angularjs+html
    Плюсом такого решения является легкость изменения и улучшения. Минусом - большие вложения, так как разработчики стоят денег и за пару часов это не напишешь. Есть также много других плюсов, но о них потом, если заинтересуетесь - сейчас с телефона неудобно

    Промежуточное решение - excel в качестве фронтенда и бд, написать логику на питоне или даже си шарпе(или любом другом яп, который из коробки представлен в msvs- у них хорошая интеграция с продуктами microsoft, в тч с excel), там все считаться быстрее будет. Но все равно получится велосипед с костылями для инвалидов. И не будет некоторых плюсов, которые я не озвучил.
    Это тоже стоит денег, но очень условно в 10-70% от первого варианта
    Ответ написан
    Комментировать
  • Как модифицировать файл xls?

    x67
    @x67
    • vba
    • python
    • другой скриптовый язык

    В первом случае вам понадобятся регулярные выражения. В vba они есть, но я не знаю, как они работают, поэтому если структура постоянна, можно используя функцию split() получить названия полей и их значения. Зная название уже легко открыть файл. Но нужно уметь программировать - как язык он прост, но нужно немного понимать ооп и гуглить.
    Также можете попробовать вставить данные в excel лист. Если ничего не съезжает, макрос сильно упростится - надо будет лишь проверить ячейки и вставить файл с определенным названием
    Ответ написан
    Комментировать
  • Как разделить ячейку на две, что бы вместо "ул.Юрия Суюнчалиева № 16в" получилось "ул.Юрия Суюнчалиева" и "16в"?

    x67
    @x67
    № всегда есть?
    Тогда
    первая ячейка:
    =ЛЕВСИМВ(C6;ПОИСК("№";C6)-1)
    вторая ячейка:
    =ПРАВСИМВ(C6;ДЛСТР(C6)-ПОИСК("№";C6))
    Ответ написан
    3 комментария
  • Есть большая база адресов в Excel, в формате типа: " ул Дальняя" нужно привести к формату "Дальняя ул." Есть ли какие-либо функции для этого?

    x67
    @x67
    =ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК(" ";A1))&" "&ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)
    или
    =ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК(" ";A1))&" "&ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)&"."
    Ответ написан
    1 комментарий
  • Как привести значение ячейки к определенному формату в EXCEL?

    x67
    @x67
    формула берет цифры из ячейки А1 и преобразует в нужный вид:
    ="+7("&ПСТР(A1;1;3)&")"&ПСТР(A1;4;3)&"-"&ПСТР(A1;7;2)&"-"&ПСТР(A1;9;2)
    или
    =СЦЕПИТЬ("+7(";ПСТР(A1;1;3);")";ПСТР(A1;4;3);"-";ПСТР(A1;7;2);"-";ПСТР(A1;9;2))
    Ответ написан
    Комментировать
  • Как сделать столбец с временем от 00:00:00 до 23:59:50?

    x67
    @x67
    Сутки хранятся как 1.0, соответственно 1 секунда будет равна 1/(24*60*60)
    В итоге для добавления 10 секунд нужно использовать формулу:
    =A1+10/(1440*60)
    где A1 - предыдущая ячейка
    Ответ написан
    Комментировать
  • Как получить доступ к элементу списка?

    x67
    @x67
    Открываете вкладку "Разработчик" (если нет, то включите ее)->Visual Basic ->слева находите любой знакомый вам лист из книги, правый щелчок ->insert->module
    В новый модуль заходите по дабл клику, в него вставляете эту функцию. Теперь ее можно использовать и в формулах и в макросах
    Public Function GetListElement(CellText As String, num As Long) As String
        Elements = Split(CellText, ";")
        GetListElement = Elements(num - 1)
    End Function

    Пример использования в формулах:
    =GetListElement(A1;2)
    вернет второй элемент списка
    Ответ написан
  • Как записать в память или буфер данные JSON объекта парсеного через VBA-JSON?

    x67
    @x67
    да, сохраняете http.responseText в ячейку Sheets(X).Cells(Y,Z), а когда надо достать данные, делаете
    Set JSON = ParseJson(Sheets(X).Cells(Y,Z).Text)
    вместо
    Set JSON = ParseJson(http.responseText)
    Ответ написан
  • Как организовать и редактирование xlsx Excel и в MS Office и через URL-адрес?

    x67
    @x67
    Используйте современный десктопный ms office и office 365. Там есть интеграция в OneDrive. Собственно с помощью OneDrive и происходит синхронизация. Не знаю, поддерживается ли там версионирование и одновременный риалтайм доступ нескольким пользователям, но если такого нет там (а оно скорее всего есть по крайней мере в 365), то через ms office такого нет нигде. Тогда остается только гугл докс и аналоги.
    Единственный нюанс - за мс офис надо платить. Ну а что вы хотели, это действительно качественный проработанный продукт.
    Ответ написан
    Комментировать
  • Как работать с формулами в Excel?

    x67
    @x67
    Добавьте тег Excel, по нему больше людей увидит вопрос. Также VB из MS VS не является VBA - это разные вещи, у вас же тег именно для VB из MS VS, а не VBA.

    Функции листа являются методами объекта worksheetfunction. Вот отличная статья, разжевывающая ответ на ваш вопрос с примерами.
    И да, не надо использовать Above, в объектной модели excel vba есть объекты cells и range. Мне удобно работать через cells, так как координаты ячеек там можно задавать численно, например Cells(1,2) является ячейкой B1. Для смещения относительно какой-то ячейки используйте метод offset у объектов cells и range. Например, Cells(1,2).offset(0,-1) будет ячейкой A1. Для присвоения значений есть разные параметры - Value(я им пользуюсь чаще всего), Text, Formula. Почитайте хелп по каждому из них. Найдете оптимальное для себя решение.
    Попробуйте исполнить следующий код для общего понимания отличий формул от кода vba:
    Cells(1,2).offset(0,-1).value=1
    Cells(1,2).value=2
    Ответ написан
  • Как автоматически рассчитать процент премии с помощью Word или Excel?

    x67
    @x67
    Если этот документ создаешь ты сам, то эта статья может помочь. Потребуется нужные данные поместить в таблицу, если табличный вид не подходит, границы можно сделать белыми.
    Если документ приходит извне, то для его автоматической или автоматизированной обработки нужно будет парсить содержимое. Для полностью автоматической обработки можно написать скрипт прямо в ворде, который найдет нужные значения и вставит что нужно куда нужно. Но для этого нужно знать VBA (или нанять фрилансера, который сделает это сам). Частично автоматизаировать легче всего выделив нужный кусок и скопировав его в excel. Если отчет +- типовой, то с помощью различных формул можно отфильтровать лишнее и получить нужные числа, а потом их обработать. Для этого хватит обычных формул. Дальше можно это все вывести в отдельную табличку и копипастой ее вставить куда надо, например обратно в вордовский файл.
    Ответ написан
  • Как настроить автоформирование документов в гугл докс?

    x67
    @x67
    Можешь написать сам или заказать у кого-то. Такой функционал даже если отсутствует из коробки, легко реализуется.
    Ответ написан
  • Как сделать выборку из Excel?

    x67
    @x67
    Используйте фильтр. Выделяете всю таблицу с названиями полей, далее вкладка Главная - сортировка и фильтр - фильтр. У названий полей появятся кнопочки, кликаете и галочкой выделяете нужные пункты.
    Ну и да, если не хотите получить втык, удалите скрин с ФИО курсантов и никогда больше не выкладывайте такие данные в интернет.
    Ответ написан
    Комментировать
  • Как в Excel добавить уникальные идентификаторы строкам (записям)?

    x67
    @x67
    Используйте ms access или любую БД. Они для этого и предназначены.
    в Excel можно реализовать через макросы, но это такой костыль, что всем костылям костыль:
    Добавьте код макроса в код страницы (редактор кода vba->двойной щелчок по нужному листу в менеджере проекта), диапазон ваших значений B1:B1000
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim KeyCells As Range
    
        ' The variable KeyCells contains the cells that will
        ' cause an alert when they are changed.
        Set KeyCells = Range("B1:B1000")
        
        If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then
    
            ' Display a message when one of the designated cells has been
            ' changed.
            ' Place your code here.
            X = 5
            Y = 1
            If Cells(Y, X).Value = "" Then Cells(Y, X).Value = 0
            On Error GoTo here
            
            If Target.Value <> "" Then
                answer = MsgBox("Increment?", vbYesNo + vbQuestion, "Empty Sheet")
                If answer = vbYes Then Target.Offset(0, -1).Value = Cells(Y, X).Value + 1
                If answer = vbYes Then Cells(Y, X).Value = Cells(Y, X).Value + 1
            Else
                Target.Offset(0, -1).Value = ""
            End If
    here:
            Debug.Print Err
        End If
    End Sub
    Ответ написан
    Комментировать