- таблица **Таблица35** расположенная на **Лист1**;
- таблица **Таблица3** расположенная на **Лист2**.
Как сделать:
- если значение `**Таблица35.Значения** = **Таблица3.Значения**`,
- то `**Таблица35.Сортировка** = **Таблица3.Сортировка**`
Примечание.
**Таблица3**
Левый верхний угол таблицы находится в ячейке `D6`
| Сортировка | Значения |
| ---------- | --------- |
| 1 | Значение1 |
| 2 | Значение2 |
| 3 | Значение3 |
**Таблица35**
Левый верхний угол таблицы находится в ячейке `D6`
| Сортировка | Значения |
| ---------- | --------- |
| | Значение1 |
| | Значение2 |
| | Значение3 |
Изменено: - 08.01.2025 15:44:49
Вводимое значение даты отображается числом, Вводимое значение даты отображается числом
Пользователь
Сообщений: Регистрация: 01.01.1970
30.09.2024 19:42:43
Вводимое значение даты отображается числом. Формат ячейки установлен "Дата".
Картинка см. прикреп. (дополнительно ссылка )
Изменено: - 30.09.2024 19:43:14
ListObjects подключить событи SelectionChange
Пользователь
Сообщений: Регистрация: 01.01.1970
01.04.2024 09:47:28
Как в ListObjects подключить событие SelectionChange? Цель: отобразить в ячейке выбранный текст в ListObjects.
Код
Private Sub Worksheet_Activate()
Dim ws As Worksheet
Set ws = ActiveSheet
Set lo = ws.ListObjects("Table4") '
' AddHandler lo, "SelectionChange", AddressOf Table4_SelectionChange
End Sub
Sub Table4_SelectionChange(ByVal Target As Range)
MsgBox "The selection in the list object has changed."
End Sub
ДатаВремя хранить в одном поле DateTime или в разных Date, Time?
Пользователь
Сообщений: Регистрация: 01.01.1970
22.03.2024 10:43:45
Цель: подключить CSV файл к Excel и проанализировать его.
Пример анализа DateTime: 1. Группировки; 2. Сортировки; 3. Фильтры; 4. Построение графиков; 5. Вычисления DateTime. (предположително)
1.ДатаВремя хранить
- Вар-1. в одном поле: DateTime или - Вар-2. в разных полях: Date, Time, Миллисекунды, часовой пояс?
Или применять Вар-1 и Вар-2 в зависимости от обстоятельств и допускается оба варианта? Чтобы можно было подключить CSV в Excel без дополнительных настроек? Или с минимальными настройками: например изменить в Excel формат поля таблицы. Ну или в PowerQuery что-нибудь "подкрутить" по мелочи.
Т.е. чтобы данные прошли путь CSV -> PowerQuery -> Excel.
Под максимальный DateTime я понимаю :yyyy-MM-dd HH:mm:ss.MS +zone Пример: 2024-03-19 13:18:31.395 +03:00.
2. Для примера я сделал несколько столбцов с различными вариантами представления DateTime.
3. Мои опасения. 3.1 Если использовать Column1(или Column2). PowerQuery распознал тип поля как Текст.
Я боюсь, что если буду строить сводную таблицу или использовать таблицу полученную из запроса в других таблицах, то данные не будут распознаны как ДатаВремя. 3.2 Если использовать Column3. В Column3 не отображаются милисекунды и часовй пояс.
Тогда Column3 нужно использовать вместе с полями Column7(миллисекунды), Column8(часовой пояс).
PowerQuery В редакторе изображение нормально отображается. При просмотре плохо. Поэтому прилагаю ссылку на и изображение. ссылка на изображение
Excel В редакторе изображение нормально отображается. При просмотре плохо. Поэтому прилагаю ссылку на и изображение. Ссылка на изображение
Код
let
Источник = Csv.Document(File.Contents("E:\Projects\39\01_pr\01\2024-03-21_15-24-36.csv"),
[Delimiter="|",
Columns=10,
Encoding=1251]),
#"Измененный тип" = Table.TransformColumnTypes(Источник,
{
{"Column1", type text},
{"Column2", type text},
{"Column3", type datetime},
{"Column4", type datetime},
{"Column5", type date},
{"Column6", type time},
{"Column7", Int64.Type},
{"Column8", type text},
{"Column9", type text},
{"Column10", type text}
}
)
in
#"Измененный тип"
Как сделать чтобы формат датаВремя в запросе соответствовал подключённому csv файлу?, Как сделать чтобы формат датаВремя в запросе соответствовал подключённому csv файлу?
Пользователь
Сообщений: Регистрация: 01.01.1970
19.03.2024 17:54:00
Как сделать чтобы формат датаВремя в запросе соответствовал подключённому csv файлу? С помощью настроек или VBA.
Предполагается к Excel подключать разные файлы "*.csv". Не хотелось бы каждый раз настраивать дату.
Если для Excel "2024-03-19 13:18:31.395 +03:00" такой формат не совсем удобен, то какой лучше?
Пример. 1. Сделать чтобы в "*.csv" была датаВремя по отдельным столбцам - |2024-03-19 | 13:18:31.395 | +03:00 2. Отказаться от "+03:00"
Другие рекомендации.
Изменено: - 19.03.2024 17:56:21
Вместо секунд отображается - сс, Вместо секунд отображается - сс
Пользователь
Сообщений: Регистрация: 01.01.1970
03.12.2023 21:38:21
Вместо секунд отображается - сс. Формат - ДД.ММ.ГГГГ чч:мм:cc
Изменено: - 03.12.2023 21:39:01
Как седлать SQL запрос из двух таблиц?
Пользователь
Сообщений: Регистрация: 01.01.1970
03.11.2023 12:13:37
Как седлать SQL запрос из двух таблиц? Т.е. у меня есть SQL запрос. Я хочу его проверить. Просто вставить и чтоб он отработал. Exel переключает в PQ. А где он там вставляется не понятно...
Power Query. Слияние. Кнопка "ok" неактивна, Power Query. Слияние. Кнопка "ok" неактивна
Пользователь
Сообщений: Регистрация: 01.01.1970
16.01.2023 23:20:57
Пробую повторить пример: "Поиск совпадений в двух списках".
На шаге, цитата: "на вкладке Данные или на вкладке Power Query находим команду Получить данные - Объединить запросы - Объединить (Get Data - Merge Queries - Merge):" и далее по тексту.... У меня не активна кнопка "ок"
Вопрос: Что я делаю не так?
Изменено: - 16.01.2023 23:22:04
Как проанализировать срабатывание камеры?
Пользователь
Сообщений: Регистрация: 01.01.1970
05.11.2022 13:44:07
Вопросы. 1. как совместить дни(часы, минуты) когда фотоловушка срабатывает с днями(часы, минуты) когда ловушка не работает? Т.е. я получаю данные года ловушка срабатывает. Для полного анализа срабатывания нужны дни когда фотоловушка не срабатывает. Т.е. в резуkьтате должна получить таблица в которой будут данные: срабатывания + несрабатывания. 2. Может есть в общем готовые решения для таких задач?
Описание. Получаю данные по срабатыванию фотоловушки в формате: - Имя; - Размер; - ДатаВремя_создания. Данные будут поступать периодически не предсказуемо: раз в неделю, раз в месяц, раз в квартал.
Минимальные ожидания. Логика: - в файле "ФотоЛовушкаГлав.xlsx" вставил на лист данные `Имя`, `Размер`, `ДатаВремя_создания`(Или экспортировать); - в файле "ФотоЛовушкаГлав.xlsx" нажал кнопку Excel: данные перенеслись на лист с полным календарём; - автоматически построились графики;
Главная цель получить полный календарь за год (или за меньшие периоды). Где будут содержаться данные с днями когда ловушка срабатывает и когда ловушка не срабатывает. Каждый день должен детализирован до минуты. По возможности, чтобы можно было проанализировать сразу несколько дней.
Максимальные ожидания. Ожидаемая логика: - Открыл файл ФотоЛовушкаГлав.xlsx; - В файле ФотоЛовушкаГлав.xlsx прописал путь к папке с файлами; - в файле "ФотоЛовушкаГлав.xlsx" нажал кнопку Excel: данные перенеслись на лист с полным календарём; - автоматически построился график;
Примечание. Признаюсь сразу: не знаю, что хочу.... Хочу хоть как-то проанализировать принцип срабатывания фотоловушки... Навксидку, наверное, было бы неплохо построить график: - количество срабатываний: - в месяц; - в день; - в час; - в минуту;
- размер файлов генерируемых фотоловушкой: - в месяц; - в день; - в час; - в минуту;
Буду признателен за любый полные или частичные решения, предложения, рекомендации...
Картинка-1
Картинка-2
Как удалить пустые переносы строк до и после текста?
Пользователь
Сообщений: Регистрация: 01.01.1970
17.06.2022 08:27:25
Как удалить пустые переносы строк до и после текста во всём диапазоне?
Изменено: - 17.06.2022 08:27:53
Как распределить текст по столбцам?
Пользователь
Сообщений: Регистрация: 01.01.1970
16.06.2022 19:27:23
С помощью VBA или другими способами...
На вскидку я так понимаю, что нужно выполнить следующую логику: 1. Получить текст ячейки; 2. Результат: ЧУП «Мобильный город» Вороново, ул. Литовчика, 43
Пн: выходной Вт - Пт: 9:30 - 16:30 Сб: 9:30 - 13:30 Вс: выходной 375296435132 3. Логика распределения строк текста: п.1 Первую строку перенести в поле "Организация"; п.2 Вторую строку разделить по первой запятой ","; п.3 Вторую строку первое слово перенести в поле "Город"; п.4 Вторую строку остальную часть перенести в поле "Адрес"; п.5 Последню строку перенести в поле "Телефон"; п.6 Оставшийся текст перенести в поле "График";
Вопрос. Правильно ли я понимаю логику ? Буду признателен если кто подскажет фрагменты кода по каждому(или по отдельным) пункту или всё решение...
Изменено: - 16.06.2022 19:28:36
Разнести текст по ячейкам по первому пробелу, Разнести текст по ячейкам по первому пробелу
Пользователь
Сообщений: Регистрация: 01.01.1970
23.01.2022 20:28:29
Разнести текст по ячейкам по первому пробелу
Пример текста 0:00 произвольный текст 0:03 произвольный текст
Импорт нетабличных данных по URL (Power Query)
Пользователь
Сообщений: Регистрация: 01.01.1970
10.12.2021 21:12:06
Как импортировать данные со страницы? Как получить все поля: имя, описание, ссылка, картинка, стоимость и другие поля?
Я пробую использовать "Html.Table".
Я получаю ошибку: Expression.Error: The name "Html.Table" is not recognized. Make sure that it is written correctly.
Как правильно использовать Html.Table? Какие есть другие способы выполнить импорт с помощью Power Query?
Картинка
Изменено: - 10.12.2021 21:17:40
Чтобы после фильтрации не пропадали кнопки фильтра?
Пользователь
Сообщений: Регистрация: 01.01.1970
11.05.2021 20:55:43
После фильтрации пропадают кнопки фильтра. Мне необходимо выполнить сортировку отфильтрованных данных.
Вопрос. Можно ли сделать чтобы они не пропадали или как решить вопрос сортировки после фильтрации другим способом?
По материалам Приёмы. Расширенный фильтр и немного магии.
Код
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:I5")) Is Nothing Then
On Error Resume Next
ActiveSheet.ShowAllData
Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
End If
End Sub
Как фильтровать по интервалу дат?
Пользователь
Сообщений: Регистрация: 01.01.1970
11.05.2021 19:54:26
Мне необходимо получить выборку из таблицы для конкретного менеджера между датами 1/05/2013 и 1/11/2013. Т.е. - поле: Дата; условие: >=1/05/2013 и <=1/11/2013; - поле: Менеджер; условие: любой менеджер;
Т.е. я предполагаю вводить в критерии (жёлтая область) диапазон дат >=1/05/2013 и <=1/11/2013 + имя менеджера. Или в данном случае это так не делается?
Вопрос. Как фильтровать по интервалу дат? Возможно ли это сделать с AdvancedFilter или нужно использовать другие инструменты?
По материалам. Приёмы. Расширенный фильтр и немного магии.
Изменено: - 11.05.2021 20:03:49
Вывести результат SQL запрос в диапазон с именами колонок
Пользователь
Сообщений: Регистрация: 01.01.1970
04.05.2021 21:34:12
Первоначально код возвращал диапазон с именами колонок. Потом перестал… Я вроде ничего не менял…
Код
' --- Data_ListObject ---
Public Sub SelectSqlQuery()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim objList As ListObject
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
Set objList = Sheets("Data_ListObject").ListObjects("TestSQL_tbl")
s = objList.Range.Address(0, 0)
strSQL = "SELECT * FROM [Data_ListObject$" & s & "]" ' ++
rs.Open strSQL, cn
Sheets("Result_Range").Range("B3").CopyFromRecordset rs
End Sub
Код
' --- Data_Range ---
Public Sub SelectSqlQuery2()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim objList As ListObject
Dim strFile As String
Dim strCon As String
Dim strSQL As String
strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
strSQL = "SELECT * From [Data_Range$]"
rs.Open strSQL, cn
Sheets("Result_Range").Range("B3").CopyFromRecordset rs
End Sub
Чем сортировка текста в виде чисел отличается от сортировки этих же чисел?
Пользователь
Сообщений: Регистрация: 01.01.1970
29.04.2021 20:44:10
Как сделать чтобы сводная таблица правильно сортировала? Т.е. чтобы была последовательность: - 1; - 2; - 10; - 11;
Объединить горизонтально несколько диапазонов из разных файлов с разным количеством столбцов
Пользователь
Сообщений: Регистрация: 01.01.1970
27.04.2021 18:10:22
Имеетcя папка в которую сбрасываются отчёты. Отчёты имеют - постоянный состав столбцов: код, имя, описание. - переменный состав столбцов: характеристика_1, характеристика_2, характеристика_3, ... Т.е. в одном файле n_Отчёт.xlsx поля код, имя, описание будут точно, а поля характеристика_1, характеристика_2, характеристика_3 могут быть в полном составе или частичном. Наименование поля "характеристика_n" принято условно, т.е. имя может быть произвольным.
Структура папок: ..\Folder\Главный.xlsx ..\Folder\Data\01_Отчёт.xlsx ..\Folder\Data\02_Отчёт.xlsx ..\Folder\Data\03_Отчёт.xlsx
Вопрос. Как собрать из файлов n_Отчёт.xlsx диапазоны в одну таблицу(диапазон) в файле Главный.xlsx?
Отчёт-01 Отчёт-02
Отчёт-03
Ожидаемый результат
Что делает свойство Worksheet.AutoFilter?
Пользователь
Сообщений: Регистрация: 01.01.1970
01.01.2021 15:11:10
Что делает AutoFilter?
Изучаю статью
Вопрос по строке
Код
Set FilterRange = Target.Parent.AutoFilter.Range
Если я правильно понял Target - это отсюда Private Sub Worksheet_Change(ByVal Target As Range). Parent - это Worksheet, которому принадлежит Target. AutoFilter - это автофильтр родительского Worksheet для диапазона Target
Вопрос. Что такое AutoFilter? Что делает AutoFilter?
Документация
Код
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FilterCol As Integer
Dim FilterRange As Range
Dim CondtitionString As Variant
Dim Condition1 As String, Condition2 As String
If Intersect(Target, Range("Условия")) Is Nothing Then Exit Sub
On Error Resume Next
Application.ScreenUpdating = False
'определяем диапазон данных списка
Set FilterRange = Target.Parent.AutoFilter.Range
'считываем условия из всех измененных ячеек диапазона условий
For Each cell In Target.Cells
FilterCol = cell.Column - FilterRange.Columns(1).Column + 1
If IsEmpty(cell) Then
Target.Parent.Range(FilterRange.Address).AutoFilter Field:=FilterCol
Else
If InStr(1, UCase(cell.Value), " ИЛИ ") > 0 Then
LogicOperator = xlOr
ConditionArray = Split(UCase(cell.Value), " ИЛИ ")
Else
If InStr(1, UCase(cell.Value), " И ") > 0 Then
LogicOperator = xlAnd
ConditionArray = Split(UCase(cell.Value), " И ")
Else
ConditionArray = Array(cell.Text)
End If
End If
'формируем первое условие
If Left(ConditionArray(0), 1) = "<" Or Left(ConditionArray(0), 1) = ">" Then
Condition1 = ConditionArray(0)
Else
Condition1 = "=" & ConditionArray(0)
End If
'формируем второе условие - если оно есть
If UBound(ConditionArray) = 1 Then
If Left(ConditionArray(1), 1) = "<" Or Left(ConditionArray(1), 1) = ">" Then
Condition2 = ConditionArray(1)
Else
Condition2 = "=" & ConditionArray(1)
End If
End If
'включаем фильтрацию
If UBound(ConditionArray) = 0 Then
Target.Parent.Range(FilterRange.Address).AutoFilter Field:=FilterCol, Criteria1:=Condition1
Else
Target.Parent.Range(FilterRange.Address).AutoFilter Field:=FilterCol, Criteria1:=Condition1, _
Operator:=LogicOperator, Criteria2:=Condition2
End If
End If
Next cell
Set FilterRange = Nothing
Application.ScreenUpdating = True
End Sub
Изменено: - 01.01.2021 15:55:59
Как получить список строк(записей) таблицы по критерию используя VBA?
Пользователь
Сообщений: Регистрация: 01.01.1970
05.08.2020 21:24:31
Как получить список строк(записей) таблицы по критерию используя VBA? Мне необходимо: п.1. получить все строки у которых поле "Выбор" = "Да"; п.2. выполнить "For Each ... Next …" для всех выбранных записей(строк) в п.1 с получением данных из всех столбцов.
Перевести в нижний регистр первую букву слова
Пользователь
Сообщений: Регистрация: 01.01.1970
05.08.2020 07:42:27
Как перевести в нижний регистр первую букву слова? Пример: До: АсловоБслово После: асловоБслово.
Как эффективно использовать SQL Server + Excel?
Пользователь
Сообщений: Регистрация: 01.01.1970
07.01.2020 16:33:32
Описание: На SQL Server имеется база данных в следующем составе: - количество таблиц: 3-5 шт. таблиц; - количество полей в каждой таблице: - 20-50 шт. полей; - количество записей в каждой таблице: 10 000 - 50 000 шт. записей. Данные в таблицах SQL Server постоянно обновляются.
Цель: Подключить Excel к SQL Server. Подключённые таблицы отобразить в таблицах или сводных таблицах. Построить несколько диаграмм на основании подключённых таблиц или сводных таблиц. Нажав кнопку "Обновить" постоянно получать актуальные данные.
Предварительное решение: Для подключения предполагается использовать Данные -> Получить данные -> Из бы данных SQL Server.
Вопрос Будет ли достаточным использовать для таких целей способ подключения Данные -> Получить данные -> Из бы данных SQL Server или нужно дополнительно использовать Power Query / Pivot?
Изменено: - 07.01.2020 16:37:42
Как сделать чтобы к таблице добавилось поле "Остаток" и это поле рассчитывало остаток денежных средств на период?
Пользователь
Сообщений: Регистрация: 01.01.1970
07.01.2020 00:24:58
Описание: В SQL Server имеется таблица: - Table: Assignment. Данные в таблице SQL Server постоянно обновляются.
Цель: Подключить Excel к SQL Server. Нажав кнопку "Обновить" постоянно получать актуальные данные. На основании данных построить диаграмму, которая будет отображать поступление, расход, остаток по каждой дате.
Предварительное решение: Я подключил Excel к SQL Server. Я получаю таблицу Assignment в Excel.
Вопрос. 1. Как сделать чтобы к таблице Assignment добавилось поле "Остаток" и это поле рассчитывало остаток денежных средств на период? Буду благодарен, если кто-нибудь поможет реализовать решение полностью или хотябы предоставит описание как это сделать.
Изменено: - 07.01.2020 00:25:33
Как сравнить списки?
Пользователь
Сообщений: Регистрация: 01.01.1970
22.12.2019 23:49:17
Имеется три таблицы. Я объединяю таблицы в одну таблицу. Как перечислить через запятую, в каких списках имеется текущая запись? Т.е. как сделать чтобы столбец "Использование"(Таблица3) (см. Рисунок 2) заполнился как показано на рисунке?
Скрытый текст
[FILE ID=372562] [FILE ID=372564]
Изменено: - 23.12.2019 15:30:04
Можно ли подключить куб(*.cub) к диаграмме?
Пользователь
Сообщений: Регистрация: 01.01.1970
20.12.2019 14:58:49
Имеется файл "Куб.cub" Я хочу построить на основании этого файла диаграмму. Нажимаю на диаграмму.
И чё ? Где-то должна быть кнопка "Подключить источник данных" ("Выбрать подключение"). Но я её не нахожу. Если вставляю сводную таблицу, то кнопка есть "Выбрать подключение" имеется и с этим проблем нет.
Или куб можно подключить только к "сводной таблице", а диаграмму строить только на основании "сводной таблицы"?
Можно ли подключить куб(*.cub) к диаграмме?
Как рассчитать "остаток" на период если "приход", "Расход" находятся в одном поле?
Пользователь
Сообщений: Регистрация: 01.01.1970
16.12.2019 17:46:06
Имеется таблица. Данные в таблицы вводит пользователь. На основании таблицы строится сводная таблица.
Вопрос. Как сделать чтобы в данной таблице учитывался "остаток" за день? Или чтобы "остаток" как-то рассчитывался в Сводной таблице? Или нужно всё таки делать отдельные поля для "Приход", "Расход", "Остаток"?
Основная суть: имеется таблица в которой Приход, Расход находятся в одном поле. Как имея такую таблицу построить учёт финансов с учётом остатка за день?
Рисунки
Изменено: - 16.12.2019 17:57:35
Как заменить весь текст в ячейке?
Пользователь
Сообщений: Регистрация: 01.01.1970
03.12.2019 18:41:27
Как заменить весь текст в ячейке?
Пробую ' "Заменить на".
Код
Public Sub ReplaceActiveCell()
ActiveCell.Value = Replace(ActiveCell.Value, "*", "ok")
End Sub
Ничего не происходит
Как выполнить SQL запрос "SELECT" к таблице?
Пользователь
Сообщений: Регистрация: 01.01.1970
23.03.2019 15:47:52
Как сделать чтобы я нажал на кнопку и таблица фильтровалась согласно SQL запроса? Или формировалась таблица(диапазон) согласно SQL запроса на другом листе (или на этом же).
Запрос типа следующего:
Код
SELECT *
FROM ИнвентарнаяВедомость
WHERE Описание = 'Описание 1'
Как удалить картинку из файла?
Пользователь
Сообщений: Регистрация: 01.01.1970
04.02.2019 01:30:40
Копирую текст из Ворда. Вместе с текстом копируется "радиоКнопки".
Как удалить картинку("радиоКнопки" или "Чекбоксы") из файла?