此代码将为您提供有关问题结构的视图。每个单元格(Q1至Q4的产品值)基于公式计算
Q1<-c("=DN1+1","=DN2+3","=DN3*4","=DN4-1","=DN1 + DN2 + DN3 + DN4")
Q2<-c("=DK1", "=DK2","=DN3+DK3","=DN4+DL3- DM1 * ( DM2 + ((-DJ7-DK3) / S20+ S22) + S223 + Y446 / ZQ282 - W223)","=DG1 + DG2 + DG3 + DG4")
Q3<-c("=DK1","=DK2","=DG3 (-1 qtr) +DK3","=DG4(-1 qtr)+DL3- DM1 * ( DM2 + ((-DJ7-DK3) / S20+ S22) + S223 + Y446 / ZQ282 - W223)","=DG1 + DG2 + DG3 + DG4")
Q4<-c("=DK1","=DK2","DG3 (-1 qtr) +DK3","=DG4(-1 qtr)+DL3- DM1 * ( DM2 + ((-DJ7-DK3) / S20+ S22) + S223 + Y446 / ZQ282 - W223)","DG1 + DG2 + DG3 + DG4")
D1<-data.frame(Q1,Q2,Q3,Q4)
D1$Product<-c("A","B","C","D","Total")
D1$Original_Price<-c("DN1","DN2","DN3","DN4","DN7")
D1$New_Price<-c("DG1","DG2","DG3","DG4","DG7")
D1<-D1[,c(5,6,7,1,2,3,4)]
我写的函数的代码是here
问题1 : 目前,我的函数具有计算单元格值的硬编码公式
Value[10] <- DN3 + DK3
Value[11] <- as.numeric(Value[10]) + DK3
Value[12] <- as.numeric(Value[11]) + DK3
如果对每个公式进行编码,这使得计算我拥有的300个左右单元格的值(28个产品和9个季度的真实数据集)很有挑战性。
问题2: 当我创建函数时,输入数据格式中不存在Period(Q1,Q2,Q3等)。新的输入数据格式(导入为csv / excel)为:
Code Value Period
DN1 100 Q1
DN1 200 Q2
DN1 300 Q3
DN1 400 Q4
DN2 500 Q1
DN2 600 Q2
即。每个单元代码(例如DN1,DN2等)将出现每个季度的值
因此,如果使用DN1 + DN2计算单元格值,则对于Q1,该值为100 + 500 = 600。
我想摆脱这些已编码的公式,因为我有300多个单元格(因此有300个公式),我必须手动输入。另外,我需要在计算之前查看代码和期间的函数。
输出应如下所示:
Product Category Entity Period Value
A Original Price ABC Q1 994
A New Price ABC Q2 933
A New Price ABC Q3 933
A New Price ABC Q4 933
B Original Price ABC Q1 582
B New Price ABC Q2 786
B New Price ABC Q3 786
B New Price ABC Q4 786
预期解决方案:获取输入数据并创建数据帧。创建一个excel / csv,其中包含每个单元格的公式(而不是在代码中进行硬编码),并使用类似eval(parse)的内容来读取excel / csv中的公式,并使用来自不同excel / csv的输入数据并创建以上格式的输出表。 我已经尝试但未能修改我的功能。
建议将非常感谢。