使用 ImportHTML 或 ImportXML 对 Google 工作表中的 Select Non-Consecutive 列、删除行和添加排序列

Using ImportHTML or ImportXML to Select Non-Consecutive Columns In Google Sheets, Remove Rows, & Add A Sort Column

我想将 https://www.pro-football-reference.com/years/2020/draft.htm 中的 table 信息导入 google sheet。但是,我试图避免引入空单元格以及我在其他 sheet 中已有的信息。这是我的问题:

  1. 我想要的唯一列是 Round (col1)、Pick (Col2) 和 Player (Col4)。我试过使用 ImportHTML,到目前为止,我所能做的就是抓住整个 table.
  2. 我想创建一个名为 'Rd.Pick' 的新列,它将把选择列转换为代表他们在各自回合中的选择。所以又名 Pick 33 会显示 2.1
  3. 最后,我希望能够删除在一轮的最后一次选择之间但在下一轮的第一次选择之前列出的行。鉴于这些行中的文本与 header 行匹配,我不确定该怎么做。

尝试:

=ARRAYFORMULA(QUERY({
 QUERY(IMPORTHTML("https://www.pro-football-reference.com/years/2020/draft.htm", 
 "table", 1), "select Col4"), 
 QUERY(IMPORTHTML("https://www.pro-football-reference.com/years/2020/draft.htm", 
 "table", 1), "select Col1")&"."&
 QUERY(IMPORTHTML("https://www.pro-football-reference.com/years/2020/draft.htm", 
 "table", 1), "select Col2")}, "where not Col2 matches '\.'", 1))

这只是为了回答您上面评论中的问题 - 如何将顺序选秀号码转换为 3.12 之类的数字,第 3 轮第 12 顺位。 这个公式有点蛮力,但它有效:

={"Round-Pick";
ArrayFormula(ifna(ifs(
  D2:D=1,"1."& text(E2:E,"00"),
  D2:D=2,"2."& text(E2:E-max(filter(D:E,D:D=1)),"00"),
  D2:D=3,"3."& text(E2:E-max(filter(D:E,D:D=2)),"00"),
  D2:D=4,"4."& text(E2:E-max(filter(D:E,D:D=3)),"00"),
  D2:D=5,"5."& text(E2:E-max(filter(D:E,D:D=4)),"00"),
  D2:D=6,"6."& text(E2:E-max(filter(D:E,D:D=5)),"00"),
  D2:D=7,"7."& text(E2:E-max(filter(D:E,D:D=6)),"00")
  ),""))}

如果你把它放在 NFLDraft!F1 中,它应该会做你想做的。如果愿意,您可以隐藏 E 列。

更新:提供您要求的格式,前导零。