Excel 基于单元格值将数据从一个工作表传输到下一个工作表
我很难给这个标题,我认为最好用例子来解释。我不是一个非常有经验的excel用户,但我被要求解决这个问题 工作表1(由软件交付)的格式如下:Excel 基于单元格值将数据从一个工作表传输到下一个工作表,excel,excel-2010,vba,Excel,Excel 2010,Vba,我很难给这个标题,我认为最好用例子来解释。我不是一个非常有经验的excel用户,但我被要求解决这个问题 工作表1(由软件交付)的格式如下: 12/17/2013 Hour Delivered 00.00-00.59 Employee 1 18 Employee 2 17 Total For Hour 35 01.00-01.59 Employee 1
12/17/2013
Hour Delivered
00.00-00.59
Employee 1 18
Employee 2 17
Total For Hour 35
01.00-01.59
Employee 1 18
Employee 2 17
Employee 3 12
Total For Hour 47
... etc until hours 24.00-24.59
小组中每小时的员工数量每天都不一样,所以我不认为我可以简单地引用单元格
我要将数据从工作表1传输到的工作表是基于日期的,因此每天都有一个工作表。(12/17工作表、12/18工作表等)
这是日期工作表的格式:
Employee 00.00-00.59 | 01.00-01.59 | etc. until hours 24.00-24.59
Employee 1 18 18
Employee 2 17 17
Employee 3 12
Employee 4
Employee 5
因此,基本上我需要将工作表1中的数据转移到各个日期工作表中。我认为,每小时/天的员工数量不同,这就很难做到。这里有人对如何实现这一目标有什么想法吗
另外,如果有任何问题,请告诉我。这应该可以在没有任何VB的情况下分两步进行。第一步是在工作表1中添加更多列,使数据正常化。第二步是使用规范化数据创建透视表 “正常化”是指在工作表1中添加日期、小时、员工和交付的列,使用公式复制现有列A和B中的值。如果需要更多帮助,请告诉我 编辑:正在添加详细信息 假设工作表1具有您在A列和B列中指示的值,并且您希望在D列中显示小时。假设第1行仅包含列标题。让第2行完全空着。D列中的公式需要说明“如果A列中的值看起来像一个小时,则复制它,否则从上一行开始重复该小时。”确定工作表1中的行是否为小时的一个简单方法是在第3位查找小数点。所以把
=IF(MID(A3,3,1)=“”,A3,D2)
放在单元格D3中,然后把公式复制下来
我相信您可以为Date、Employee和Delivered列构造类似的公式
可能会在公式中添加一个条件,即“如果a列中的值以'Total'开头,则将单元格留空”。如果没有太多数据,并且设置正是上面显示它们的方式,一个简单的公式可以解决此问题 假设我的原始输出在工作表
Base
、单元格A1
中,并且我的预期输出在工作表输出
、单元格A1
中开始,您可以在单元格B2
上使用此公式:
=IF(索引(基!$A:$A,匹配(B$1,基!$A:$A,0)+行(1:1),0)=$A2,偏移量(索引(基!$A:$A,匹配(B$1,基!$A:$A,0)+行(1:1),0,0),0)
前提很简单。它使用索引
+匹配
来定位正确的小时,然后通过正确的行数
对其进行偏移。当然,这是假设您的员工每小时都在同一位置(即员工1始终在小时下方一(1)行,员工2始终在小时下方两(2)行,以此类推)。我们还添加了一个检查,检查员工姓名是否匹配,以便在员工不在时返回0
以下是一些屏幕盖:
样本数据:
输出:
当然,这只是基本前提。如果一张工作表中有多个日期,只需进一步操作此公式即可。在我的脑海中,找到正确的日期并添加正确的偏移量也能起作用
让我们知道这是否有帮助,或者VBA或Pivot选项是否最合适。感谢您的帮助,我正在尝试这样做,并会让您知道。由于每个小时下的名称数量每天都不同,您建议我如何在新的标准化列中引用我的值?我不能只说“=A5”,因为这可能不是每个工作表中的员工。我今天下午有空闲时间补充了一些额外的提示,并构建了一个示例解决方案。希望您可以从