let
Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Наименование клиента"}, "Месяц", "Чего-то там-с"),
trans = Table.TransformColumns(#"Unpivoted Other Columns", {"Чего-то там-с", each if _ is number then _ else try Number.From(_, "en-US") otherwise null}),
#"Changed Type" = Table.TransformColumnTypes(trans,{{"Наименование клиента", type text}, {"Месяц", type text}, {"Чего-то там-с", type number}})
in
#"Changed Type"
lostandleft написал: Если бы был BI а не эксель, я бы создал виртуальные таблицы и объединил бы их через UNION и так далее....но Экселевский Дакс этого делать не умеет, не умеет создавать связи между виртуальными и реальными таблицами.
А что мешает создать на листе таблицы, которые и будут теми самыми виртуальными таблицами BI и их объединить через Power Query? Смысл ровно тот же.
Евгений написал: клиенты, которые перестали ходить, они не считаются вообще ни в одном месяце
Вполне естественно, так как
Цитата
Евгений написал: единственное условие, чтобы не считать его клиентом, это наличие даты прекращения занятий в соответствующем столбце
Потратьте минут 15 и напишите непротиворечивое определение того, что вы хотите посчитать относительно вашей модели данных - это не требует каких-либо знаний DAX.
ТС просто относится к тем, кто считает, что если функции в Excel и Google spreadsheet называются одинаково, то результаты комбинаций их использования дают одинаковый результат Хотя, в Google даже предложенная js-функция внезапно даёт для одного из значений вывод диапазоном, а не одно значение в единственной яейке.
function getColumnIdByValue(searchValue, dataRange) {
const rowCount = dataRange.length;
var result, i;
for (i = 0; i < rowCount; i += 1) {
result = dataRange[i].indexOf(searchValue);
if (result > -1) {
break;
};
};
return (result > -1 ? result + 1 : result);
}
Доброе время суток. mechanix 85, ваша мера исходит из того что, оплата поступает ежемесячно без разрывов. Но, например, у ученика 871514 нет платежа в октябре 2020. Возможно у родителей не было средств - в ноябре и декабре платят большие суммы, доплачивают за октябрь. Опять же, дети могу болеть, и из-за этого может быть разрыв в платежах. Это вполне житейские ситуации Опять же, 992361 дата прекращения платежей стоит декабрь 2020 года. Означает ли это, что в ноябре 2020 это не активный клиент?
Private Type PointInfo
Name As String
Description As String
Coordinates As String
End Type
Public Sub Test()
Dim pDoc As Object
Dim pointList As Object
Dim dataInfo As PointInfo
Dim nextNode As Object
Set pDoc = CreateObject("MSXML2.DOMDocument")
pDoc.Load "C:\Temp\Timoschevsk 2021.01.27.kml"
Set pointList = pDoc.SelectNodes("/kml/Document/Folder/Placemark")
pointList.Reset
Set nextNode = pointList.nextNode
Do Until nextNode Is Nothing
dataInfo = GetPointInfo(nextNode)
Debug.Print dataInfo.Name & ";" & dataInfo.Description & ";" & dataInfo.Coordinates
Set nextNode = pointList.nextNode
Loop
End Sub
Private Function GetPointInfo(ByVal thisNode As Object) As PointInfo
Dim result As PointInfo
FillPointInfo thisNode, result
GetPointInfo = result
End Function
Private Sub FillPointInfo(ByVal thisNode As Object, ByRef dataInfo As PointInfo)
Dim list As Object, nextNode As Object
If thisNode.nodeName = "name" Then
dataInfo.Name = thisNode.Text
ElseIf thisNode.nodeName = "description" Then
dataInfo.Description = thisNode.Text
ElseIf thisNode.nodeName = "coordinates" Then
dataInfo.Coordinates = thisNode.Text
End If
Set list = thisNode.ChildNodes
list.Reset
Set nextNode = list.nextNode
Do Until nextNode Is Nothing
FillPointInfo nextNode, dataInfo
Set nextNode = list.nextNode
Loop
End Sub
Михаил Л написал: Как получить количество уникальных сф?
А какое отношение имеет слово уникальный к требуемому результату 800? Употребляйте слова по реальному смыслу, а не как придётся - тогда и решение будет приходить правильное
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
А настройки по пункту первому выполнили? У меня через yandex не отправляло с таким же как у вас ссобщением. Ну и правильный номер порта не стесняйтесь указывать.
Привет, Алексей. Тут я не совсем оказался прав, есть ограничения Access specifications. Действительно больше 50 штук за раз не даёт использовать - в любом тогда случает придётся разбивать. Так что пункт #8 - актуален.
rafa_el, а какова цель в пофайловом запросе? Чем не устраивают SQL средства?! Один раз ответили...
Код
let
Source = Odbc.Query(
"Driver={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};Dbq=c:\Path\dbf",
"Select * From [02200002]"
& " Union All Select * From [001]"
& " Union All Select * From [file01]"
)
in
Source