Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何减少包含记录数据的列中的冗余单元格_Mysql_Excel_Database_Algorithm_Redundancy - Fatal编程技术网

Mysql 如何减少包含记录数据的列中的冗余单元格

Mysql 如何减少包含记录数据的列中的冗余单元格,mysql,excel,database,algorithm,redundancy,Mysql,Excel,Database,Algorithm,Redundancy,是否有功能减少一列中的冗余数据量,以匹配第二列中的单元格数 我记录了两个传感器的数据,它们以不同的速率发送值。在8小时内,我为第一个传感器收集了11857个值,为第二个传感器收集了8130个值 我需要通过删除数据来压缩第一列,以匹配第二列上的单元格数量,以便在图表上显示同步值。 这不是从第一列的开头或结尾删除3727个单元格,而是按比例删除单元格 我试过使用去模函数,但它没有给我正确的压缩量;e、 例如,通过运行=MOD(A1,3),然后过滤包含“0”值的单元格并删除这些行,我得到7905,接近

是否有功能减少一列中的冗余数据量,以匹配第二列中的单元格数

我记录了两个传感器的数据,它们以不同的速率发送值。在8小时内,我为第一个传感器收集了11857个值,为第二个传感器收集了8130个值

我需要通过删除数据来压缩第一列,以匹配第二列上的单元格数量,以便在图表上显示同步值。 这不是从第一列的开头或结尾删除3727个单元格,而是按比例删除单元格

我试过使用去模函数,但它没有给我正确的压缩量;e、 例如,通过运行=MOD(A1,3),然后过滤包含“0”值的单元格并删除这些行,我得到7905,接近8130,但数据仍然被移出

编辑:

我找到了一种需要几个步骤的方法:

  • 将传感器的数据复制到两列中
  • 使用COUNTA
  • 获取较小计数与较大计数之间的比率
  • 在新列中,使用
    =INT(ROW()*ratio)
  • 使用索引列作为数据>删除重复项的引用来删除重复行 它可以工作,但是如果有一个现成的函数运行在提供的数据列上,并将值复制到两个新列中,速度会快得多

  • 我在libreofficecalc中测试了这个解决方案。使用的函数足够基本,可以在Excel中找到

    这是一个样本,包含来自两个传感器(s1和s2)的数据,与您的类似:

    Row s1  s2
    1   2   3
    2   4   6
    3   6   9
    4   8   12
    5   10  15
    6   12  18
    7   14  21
    8   16  
    9   18  
    10  20  
    11  22  
    
    我所做的是将s1样本中的数据与s2样本中与第一个样本位置相对匹配的数据进行匹配,因此,我不是以大量没有s2值的行结束,而是用任何给定时间段内采集的最后一个样本填充不存在的s2值(s2a列)

    假设s1是电子表格中的A列,s2是B列,则新列的每个单元格上需要的函数为:

    =INDIRECT( ADDRESS( CEILING( ROW()* COUNT(B:B)/COUNT(A:A)),2))
    
    让我们从下到上:

    • 计数(B:B)/计数(A:A)-这是比率。0.63英尺以上。它表示s1中任何给定行中的每个样本将在s2列中的该行x 0.63处找到
    • 天花板-电子表格不是从第0行开始的,所以第一行必须是1。我尝试了Int(),但是如果比率小于0.5,我们最终会得到一个0,这是我们不想要的
    • Address-返回一个字符串,其中包含给定行、列坐标的单元格地址(例如,此处使用的地址(3,2)=“B3”和地址(3,2,2),将生成一个绝对列或“$B3”)
    • 间接-返回其地址作为字符串传递的单元格的内容(例如,地址(“x5”)将返回存储在单元格x5中的任何值)

    Alex

    这似乎与mysql没有任何关系,如果它这样做的话,行数将是相同的(假设两个传感器的数据在同一个表中)。你能提供你的工作表的示例吗?Zac,这是数据:p.Salmon,我将数据记录到.csv文件中,然后在Excel中打开它进行过滤,最后将其导入mysql中的表中。
    =INDIRECT( ADDRESS( CEILING( ROW()* COUNT(B:B)/COUNT(A:A)),2))