Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
在Excel电子表格中移动数据时,是否需要使用VBA?如果是这样的话,我该怎么做呢?_Excel_Vba_Spreadsheet - Fatal编程技术网

在Excel电子表格中移动数据时,是否需要使用VBA?如果是这样的话,我该怎么做呢?

在Excel电子表格中移动数据时,是否需要使用VBA?如果是这样的话,我该怎么做呢?,excel,vba,spreadsheet,Excel,Vba,Spreadsheet,听起来很老套,老读者,第一次海报。我目前正在帮助一位家庭成员完成一些工作,他必须整理数千条记录,并稍微更改格式,显然如果没有某种自动化,这将需要几十个小时,他问我是否可以快速完成。起初我以为我可以,但我对这些东西有点不知所措 基本上,他有这种格式的数据: Sample No 1 Ag 20 1 Au 50 1 Cu 80 2 AG 1 2 Au 30 3 Cu 30 样本号 1银20 1 Au 50

听起来很老套,老读者,第一次海报。我目前正在帮助一位家庭成员完成一些工作,他必须整理数千条记录,并稍微更改格式,显然如果没有某种自动化,这将需要几十个小时,他问我是否可以快速完成。起初我以为我可以,但我对这些东西有点不知所措

基本上,他有这种格式的数据:

Sample No 1 Ag 20 1 Au 50 1 Cu 80 2 AG 1 2 Au 30 3 Cu 30 样本号 1银20 1 Au 50 1铜80 2 AG 1 2 Au 30 3铜30 但我们需要这样的数据:

Sample No. Ag Au Cu 1 20 50 80 2 1 30 - 3 - - 30 样本编号Ag-Au-Cu 1 20 50 80 2 1 30 - 3 - - 30 起初我认为我可以用一个公式来水平移动数据。唯一的问题是丢失的数据最好用“-”来填充,但是在原始数据中,它们被完全忽略了,所以我假设我需要VBA

抱歉,如果我遗漏了什么,但是使用VBA在正确方向上的任何指针都会非常方便

谢谢

编辑:修正了格式,并切换了两个号码,对不起,伙计们。

你们可以用这个

假设数据当前位于单个列中,则可以执行以下操作:

  • 数据菜单>文本到列,在空间上拆分
  • 使用三个新列,在A1中插入一行
  • 给你的三列标题,例如样本、元素和大小
  • 突出显示整个范围,然后选择“数据”菜单>“数据透视表和数据透视图报告…”
  • 选择“Microsoft Office Excel列表或数据库”,然后按“下一步”
  • 如果要在新工作表中输入数据,请选择“新建工作表”
  • 从这里开始,将示例元素放到表的左侧,将元素元素放到表的顶部,将大小元素放到表的中间
  • 缺少的数据没有破折号,但这应该可以满足您的需要。

    您可以使用破折号

    假设数据当前位于单个列中,则可以执行以下操作:

  • 数据菜单>文本到列,在空间上拆分
  • 使用三个新列,在A1中插入一行
  • 给你的三列标题,例如样本、元素和大小
  • 突出显示整个范围,然后选择“数据”菜单>“数据透视表和数据透视图报告…”
  • 选择“Microsoft Office Excel列表或数据库”,然后按“下一步”
  • 如果要在新工作表中输入数据,请选择“新建工作表”
  • 从这里开始,将示例元素放到表的左侧,将元素元素放到表的顶部,将大小元素放到表的中间

  • 你不会用破折号来表示你丢失的数据,但这应该可以满足你的需要。

    不应该是
    502080
    205080
    ?是的,再次,我的错误,让我来修复OP,对不起。不应该是
    502080
    205080
    ?是的,再次,我的错误,让我修复OP,对不起。+1你比我快了。我不得不放弃这个答案。虽然您走的路线稍长。:)出于某种可怕的原因,我一开始试图在VBA中实现它,然后,lightbulbI知道它是什么感觉。这件事过去曾发生在我身上DDisregard我删除的评论,没有必要重复。再次感谢。@DouglasQuaid-很高兴它成功了!如果您选中答案旁边的绿色复选框,其他用户将知道问题已被回答。+1您比我抢先一步。我不得不放弃这个答案。虽然您走的路线稍长。:)出于某种可怕的原因,我一开始试图在VBA中实现它,然后,lightbulbI知道它是什么感觉。这件事过去曾发生在我身上DDisregard我删除的评论,没有必要重复。再次感谢。@DouglasQuaid-很高兴它成功了!如果您选中答案旁边的绿色复选框,其他用户将知道问题已被回答。