Excel:如何删除除第五行之外的所有行

gmxoilav  于 2023-01-27  发布在  其他
关注(0)|答案(3)|浏览(134)

我有一些数据在我的Csv。文件,我需要删除所有行,除了每隔5,我怎么做?

ia2d9nvy

ia2d9nvy1#

我建议您将CSV加载到PowerQuery中,尽管PQ绝不是我的强项,但我会采取以下步骤:

  • 添加起始索引为"1"且标准增量为"1"的索引列;
  • 添加基于模数5的自定义列,例如:=Number.Mod([Index],5)=0;
  • 基于"TRUE"值筛选自定义列;
  • 删除索引自定义列(& C)。

例如:

  • 添加索引列:

  • 添加自定义列:

  • 过滤自定义列:

  • 删除索引列和自定义列:

  • 仅每隔5行结束:

不管怎样,这是我从工作表(源)加载数据的m代码,可以通过CSV加载数据:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", Int64.Type}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1, Int64.Type),
    #"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each Number.Mod([Index],5)=0),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = true)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index", "Custom"})
in
    #"Removed Columns"
ycggw6v2

ycggw6v22#

未经测试的伪代码,但它将是这样的:

for i=end downto beginning:
  if mod(i,5) != 0 then 
    Range(i,1).EntireRow.Delete
  end if
 step -1

从末尾到开头是至关重要的,否则你会搞砸你行中的索引:-)

pkwftd7m

pkwftd7m3#

您可以使用以下公式创建帮助器列:

=MOD(ROW(A2)-ROW($A$2)+1;5)

如果您的Excel版本需要,请将分号替换为逗号。
ROW($A$2)是数据的第一行。
然后应用过滤器数据--〉过滤器
并删除0的对勾
然后删除行。
然后移除过滤器

删除工作表行

移除过滤器

删除助手列
然后您可以将Excel文件导出为csv。在Excel中打开csv、更改并保存可能无法正常工作。

相关问题