Доброе время суток. По первой части, ну, как-бы можно регулярными выражениями поразделять и вернуть. Зависит от того, насколько вы знаете JS. Регулярка где-то такая
Код
var reg = /([A-ZА-Я]?\d{5}(?:-\d{2})?(?: [A-ZА-Я]?\d{5}(?:-\d{2})?)?)(.+?)(?=[A-ZА-Я]?\d{5}(?:-\d{2})?|$)/g;
Код по ссылке до адаптировать, ну, или покумекать, как разделять уже найденную подстроку "36163-99 32168-99 Вакцинация против гепатита В, " средствами Power Query, хотя кодом в JS это было бы проще. По второму листу "задача2". Один вопрос - одна тема.
Доброе время суток. Бахтиёр, коллега, вы предполагаете, что у ТС совсем древний Excel? Вроде как минимум с 2016 возможно слепить что-нибудь
Код
Sub Macro1()
Range("A1:B5").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Temp\Part1.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
Public Sub removeEmptyFolders()
Const startPath = "C:\Temp\ТЕСТ_ "
Dim fso As Object, startFolder As Object, startIsEmpty As Boolean
Set fso = CreateObject("Scripting.FileSystemObject")
Set startFolder = fso.GetFolder(startPath)
startIsEmpty = recursiveDeleteFolder(startFolder)
End Sub
Private Function recursiveDeleteFolder(folder) As Boolean
Dim folderCollection As Object, nextFolder As Object
Dim emptyFolderCollection As New Collection
Dim thisIsEmpty As Boolean, nextIsEmpty As Boolean
Set folderCollection = folder.SubFolders
thisIsEmpty = (folder.Files.Count = 0)
If (folderCollection.Count > 0) Then
For Each nextFolder In folderCollection
nextIsEmpty = recursiveDeleteFolder(nextFolder)
thisIsEmpty = thisIsEmpty And nextIsEmpty
If nextIsEmpty Then emptyFolderCollection.Add nextFolder
Next
If Not thisIsEmpty Then
For Each nextFolder In emptyFolderCollection
nextFolder.Delete
Next
End If
End If
recursiveDeleteFolder = thisIsEmpty
End Function
Изменено: Андрей VG - 19.01.2024 13:55:40(Перемудрил. Несколько лет на VBA не кодировал)
Public Sub MarkItalic()
Dim pCell As Range
For Each pCell In Selection
If (TypeName(pCell.Value) = "String") Then
pCell.Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet) = Replace(pCell.Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet), "<I>", "<I>$")
End If
Next
End Sub
Garrys написал: где/как вы нашли эти ссылки на файлы?
Открыл страницу загрузок в браузере Edge и скопировал ссылку Проверил вставкой и переходом в новой странице браузера, что это приводит к повторному скачиванию.
Чтобы что-то отображать, это ещё бы найти. В лоб. Можно сделать триангуляционную поверхность для каждой функции (ещё бы быстро иметь возможность определения откуда и докуда это делать, плюс, желательный шаг первоначальной разбивки по координатам, чтобы не пропустить экстремумы). Соответственно, после этого ищем какие треугольники двух поверхностей пересекаются. Если нужно плавнее, то конкретную область пересечения разбиваем на более дробные треугольники и находи отрезки/точки пересечения, строя таким образом кривую пересечения двух поверхностей. Тут, тут права, есть проблема - как отображать такую кривую четырёхмерного пространства на плоскости экрана монитора Например, https://math.wikireading.ru/hifngOLNlA
Результатом нажатия кнопки являются два файла 1.2.643.5.1.13.13.99.2.538_3.56_xlsx.zip.001 1.2.643.5.1.13.13.99.2.538_3.56_xlsx.zip.002 Худо бедно PQ ещё может выгрузить их, если получится получить ссылку. Но вот нет уверенности в том, что можно будет извлечь из разбитого на две части zip архива собственно книгу с данными. Вы бы всё же чётче бы описывали что есть на самом деле. Зачем из вас нужно информацию клещами тянуть? Опять же
Цитата
МГКБ написал: просто получить автоматом xlsx файл в PQ
Arthur Alunts написал: Т.е. должен получится массив из 3 точек
А это как? Рассмотрим двумерный случай (функции одной переменной на плоскости) g(x) = f(x) - да тогда решением может быть конечный массив точек (и то для периодических функций это может быть бесконечное множество. Но это хотя бы точки). Но уже для трёхмерного случая (поверхности в трёхмерном пространстве) g(x, y) = f(x, y) имеем в качестве пересечения линии, например, пересечением цилиндра и сферы могут быть две окружности, которые заведомо состоят из бесконечного множества точек Как их в массив точек выводить?
Доброе время суток. Проблема со связью в том, что внезапно Таблица2 является справочником для Calendar, как пример подготовится, так и получится Опять же, а где данные по апрелю 2023 для товаров в таблицах фактов? Если поставить ноли для апреля 2023 там, то как-то так
Giorgio13 написал: а данную команду можно применить массово к нескольким столбцам?
Это не команда, а пример, как преобразовать физическую дату время в текст требуемого формата. Соответственно, если нужно прописать для нескольких столбцов, то воспользуйтесь Table.TransformColumns. А вот что да как делать со сферическим конём в вакууме, боюсь, знает только ChatGPT или YandexGPT. Говорят, что уже вот-вот почти совсем заменят им программистов
Альбертус написал: Можно ли адаптировать решение под такое условие?
Можно, вариант.
Код
let
source = Excel.CurrentWorkbook(){[Name="Дано"]}[Content],
selector = List.Buffer(Table.ToRecords(Excel.CurrentWorkbook(){[Name="Условия"]}[Content])),
result = Table.AddColumn(source, "Выбор", (rec) =>
[
value = List.Accumulate(selector, -100500, (state, current) =>
if Text.Contains(rec[Наименование], current[Наименование]) then
if current[Выбор] > state then current[Выбор] else state
else
state
),
result = if value = -100500 then null else value
][result])
in
result
KrissTinka написал: не понимаю почему формула выдает ошибку
У вас две ошибки 1.
Цитата
{"1".."1000"}
такой метод не работает для генерации последовательности "1", "2".."999", "1000", только для односимвольных значений начального и конечного элемента списка, например {"0".."z"} будет работать. Следовательно, нужно воспользоваться List.Transform( {1..1000} для преобразования числового списка в текстовый. 2. Text.Remove вторым аргументом требует список односимвольных значений, а "гр" к ним не относится. Следовательно, нужно воспользоваться другой функцией