有5列(名字,电子邮件,用户ID,应用名称),我想随机选择这些行的10%并最终将其导出为CSV,同时保持上面列出的列标题。万分感谢
答案 0 :(得分:9)
我不知道你希望这是多么随机,但是添加一个包含=RANDBETWEEN(1,85038)
的列被复制下来以适应,然后对该列进行排序并选择前8,504行应该给出相当“任意”的结果。 / p>
答案 1 :(得分:0)
您是否熟悉Excel中的SQL和Microsoft Query功能(数据 - > ...->来自Microsoft Query)?
如果是,则使用此
( SELECT "first name, email, userid, app name" )
UNION
( SELECT TOP 8503 t.[first name] & "," & t.[email] & "," & t.[userid] & "," & t.[app name]
FROM [Sheet1$] AS t ORDER BY RND() )
然后将粘贴复制到空文本文件并另存为CSV
您还可以将此SQL插件用于此http://blog.tkacprow.pl/?page_id=130
编辑1:我认为“Sheet1”是工作表的名称
答案 2 :(得分:0)
这是使用数组公式的可能解决方案。
假设您在A列中有数据(在本例中我仅使用了100个数据)。
现在在C2中,输入以下公式:(Credits to Oscar.)
=IF(ROW(A1)<=0.1*COUNTA($A$2:$A$101),INDEX($A$2:$A$101, LARGE(MATCH(ROW($A$2:$A$101), ROW($A$2:$A$101))*NOT(COUNTIF($C$1:C1, $A$2:$A$101)), RANDBETWEEN(1,ROWS($A$2:$A$101)-ROW(A1)+1))),"")
使用 Ctrl + Shift + 输入以使公式生效。
仅使用 Enter 将返回#N / A.
然后,要获得其余值,只需将公式拖下来
在这个例子中,我只是自动填充到C20。
注意: Randbetween是不稳定的。因此,每次更改内容时都会重新计算。如果你要返回8k数据,那将是很多重新计算。可能需要一段时间。
答案 3 :(得分:0)
我个人使用了一个方便实用的插件,或者说专门用于Microsoft Excel 2016/64位的插件。它被称为Kutools。 您可以通过以下链接免费下载和使用它:
Download Link(32位和64位) Kutools Website
下载并安装后,您可以从kutools选项卡中选择随机行数 - >范围 - &gt;随机排序范围 - &gt;选择 然后你可以输入从中选择行的需要量,就是这样。
答案 4 :(得分:0)