Похоже, вы использовали Legacy Wizard, а не Power Query.
Если вы используете Power Query, после выбора таблицы выберите Transform
.
Затем, если столбец чисел был импортирован в виде текста и показывает разделитель цифр запятой, не удаляйте запятые. Скорее:
- Щелкните правой кнопкой мыши заголовок столбца
- В раскрывающемся меню правой кнопкой мыши:
- Выберите
Change Type --> Using Locale
- Тип данных: Целое число
Это должно заботиться о вещах.
РЕДАКТИРОВАТЬ:
Что касается сохранения гиперссылок из веб-таблицы с помощью Power Query, это не так просто, как с Legacy Wizard, но вот метод, который, кажется, работает с вашим источником.
Требуется три запроса и функция. И вам нужно будет отредактировать таблицу после загрузки для форматирования чисел и возможных гиперссылок.
- Запрос «Таблица 0» Загрузить веб-таблицу без ссылок
- Запрос "getLinks" Загрузка ссылок, связанных с видео
- Запрос "Merge1" Объединение двух вышеупомянутых запросов
- Запрос fx " ExcelTrim " Реплицируйте обрезку Excel, чтобы иметь возможность сопоставлять имена видео в первых двух запросах, устраняя лишние пробелы между словами в заголовке видео.
ExcelTrim
Введите приведенный ниже код в расширенный редактор пустых запросов
let ExcelTrim = (TextToTrim) =>
let
ReplacedText = Text.Replace(TextToTrim, " ", " "),
Result = if not(Text.Contains(ReplacedText, " "))
then ReplacedText
else @ExcelTrim(ReplacedText)
in
Text.Trim(Result)
in
ExcelTrim
Таблица 0
Примечание I использовала функцию Changed Type with Locale
, которая должна устранить проблему сброшенного нуля.
let
Source = Web.Page(Web.Contents("https://kworb.net/youtube/")),
Data = Source{0}[Data],
#"Changed Type with Locale" = Table.TransformColumnTypes(Data, {{"Views", Int64.Type}, {"Likes", Int64.Type}}, "en-US"),
#"Added Custom" = Table.AddColumn(#"Changed Type with Locale", "trimmedVideo", each ExcelTrim([Video]))
in
#"Added Custom"
getLinks
let
Source = Table.FromColumns({Lines.FromBinary(Web.Contents("https://kworb.net/youtube/"))}),
#"Filtered Rows" = Table.SelectRows(Source, each Text.Contains([Column1], "href")),
#"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each Text.Contains([Column1], "<div><a href=")),
#"Added Custom" = Table.AddColumn(#"Filtered Rows1", "Link", each Text.BetweenDelimiters([Column1],"<a href=""","</a>")),
#"Split Column by Delimiter" = Table.SplitColumn(#"Added Custom", "Link", Splitter.SplitTextByEachDelimiter({""">"}, QuoteStyle.None, false), {"Link.1", "Link.2"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Link.1", type text}, {"Link.2", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Column1"}),
#"Added Custom1" = Table.AddColumn(#"Removed Columns", "trimmedVideo", each ExcelTrim([Link.2])),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "normLinks", each if not Text.StartsWith([Link.1],"http") then
"https://kworb.net/youtube/" & [Link.1] else
[Link.1])
in
#"Added Custom2"
Merge1
Returns ссылки в отдельном столбце из видео
let
Source = Table.NestedJoin(#"Table 0", {"trimmedVideo"}, getLinks, {"trimmedVideo"}, "getLinks", JoinKind.LeftOuter),
#"Added Custom" = Table.AddColumn(Source, "Links", each Table.Column([getLinks],"normLinks")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Links", each Text.Combine(List.Transform(_, Text.From)), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"trimmedVideo", "getLinks"})
in
#"Removed Columns"
В качестве альтернативы вы можете использовать:
Merge1 (2)
Возвращает формулу HYPERLINK
в таблицу, которая предоставляет интерактивную ссылку с понятным именем.
let
Source = Table.NestedJoin(#"Table 0", {"trimmedVideo"}, getLinks, {"trimmedVideo"}, "getLinks", JoinKind.LeftOuter),
#"Added Custom" = Table.AddColumn(Source, "Links", each Table.Column([getLinks],"normLinks")),
#"Replaced Value" = Table.ReplaceValue(#"Added Custom","""","""""",Replacer.ReplaceText,{"Video"}),
#"Extracted Values" = Table.TransformColumns(#"Replaced Value", {"Links", each Text.Combine(List.Transform(_, Text.From)), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"trimmedVideo", "getLinks"}),
#"Added Custom1" = Table.AddColumn(#"Removed Columns", "Linked Videos", each "=HYPERLINK(""" & [Links] & """," & """" &[Video] & """)"),
#"Changed Type" = Table.TransformColumnTypes(#"Added Custom1",{{"Linked Videos", type text}}),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type",{"Video", "Links"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns1",{"", "2", "Linked Videos", "Views", "Likes"})
in
#"Reordered Columns"
Если вы используете Merge1 (2) для получения гиперссылок, после сохранения вам нужно будет выбрать столбец Linked Video
и выполнить Find/Replace
или =
с =
чтобы превратить формулу из текстовой строки в формулу. Если вы измените sh запрос, вам нужно будет повторить этот процесс.
Вы также можете отформатировать столбцы Views
и Likes
, чтобы отобразить разделители тысяч.
Вот пример использования `Merge1 (2) с гиперссылками и моими разделителями тысяч.