我有一张85,038行的excel表,我如何随机选择10%的这些?

时间:2014-08-06 21:08:31

标签: excel excel-formula

有5列(名字,电子邮件,用户ID,应用名称),我想随机选择这些行的10%并最终将其导出为CSV,同时保持上面列出的列标题。万分感谢

5 个答案:

答案 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个数据)。

enter image description here

现在在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;选择 然后你可以输入从中选择行的需要量,就是这样。

Fig of Kutool tab Fig of Select Tab

答案 4 :(得分:0)

enter image description here

我认为这将有助于从列表中产生任何百分比。

如果 Col A 有您的列表
Col B 中: RAND()并填写。
Col C 中: IF(ROW()> 10%* COUNTA($ A $ 2:$ A $ 37),“”,INDEX($ A $ 2:$ A $ 37,RANK.AVG(B2,$ B $ 2:$ B $ 37, 0),1))并填写。列表中只会显示您想要的比例。