使用Py复制Excel公式时公式中出现@符号,用户可见@,Py print出来却见不到

我有一些Excel表格需要每个月都去处理,简而言之是我有若干个Excel子表格,需要从中提取出某些特定的数据,然后将这些子表格中的特定数据取出,放到一个汇总表当中,于是我在子表格下方写了很多Excel公式用于提取这些子表格中的特定数据,子表格每个月的格式大同小异,于是我就写了一段Py代码用于复制特定区域(子表格下方公式区域)到下个月的同名子表格的相同位置。

Ps:在书写公式时,发现相同文件夹目录下的Excel工作簿之间的引用在公式中以相对路径呈现,因此我每个月的子表格、汇总表名称都是相同的,只是所处的文件夹不同,例如都是桌面上的11月文件夹、12月文件夹。

然后代码能够读取到公式也能够复制,也能够粘贴,但是在粘贴时会在公式中某些位置添加@符号,进而导致公式计算错误(有的公式不受影响,有的受影响)这些@符号确实存在,我可以看到,也可以将其复制下来,可剪切下来,通过ctrl H替换为空后公式正常。但是通过print输出发现,Py无法发现所有公式中的@。不知如何解决,遂求教各位网友。

循环引用可能是提示INDEX的参数包括了F35单元格,但是这在上月表格中是可以正常计算的


F35=@INDEX(1:99,B33,D35)   (所有的@都是复制后莫名添加的,所有表格所有内容均不含@)

D35计算正常,不存在@。

B33异常=MAX(IF(@A:A="员工小计",@ROW(A:A))),A列存在多个员工小计,这个单元格是读取最后一个的行号,因此采用了MAX函数。

import openpyxl
import os



#代码块1

# 获取用户输入的月份
month = input("请输入月份,(例如:11,12,1等):")
# 定义通用目录路径
base_path = r'C:\Users\Administrator\Desktop'
# 生成完整的目录路径
directory_path = os.path.join(base_path, f'{month}月')
# 获取目录下的所有文件和文件夹
file_list = os.listdir(directory_path)
# 打印文件列表
for file in file_list:
    print(file)
# 函数:复制指定区域内容
def copy_range(src_sheet, src_range, dest_sheet, dest_start_cell):
    # 获取源区域中的所有单元格
    src_cells = src_sheet[src_range]
    # 获取目标开始单元格的行和列
    dest_start_row = dest_start_cell.row
    dest_start_co
library(meta) library(metafor) library(readxl) # 设置工作目录 setwd("D:\\1\\率的meta分析亚组分析") # 从Excel文件中读取数据集 data <- read_excel("TTS分析(meta回归)region和study design改动 - 对online telephone mail进行合并-增加了质量评估 - 副本.xlsx", 1) data<-filter(data,pre=="Y") # 如果需要,将非整数值修正为整数 data$x <- as.integer(data$x) data$n <- as.integer(data$n) # 使用metaprop函数进行Meta分析 meta_prop <- metaprop(event = x, n = n, data = data, prediction = TRUE, method.ci = "NAsm",sm="PLOGIT") #单变量meta回归 #如果需要,确保发表年份是数值型变量 #py data$py<-as.numeric(data$py) # 单变量meta回归:只考虑sample_size作为预测变量 singlemeta_reg_py <- metareg(meta_prop, ~ py) summary(singlemeta_reg_py) OR_values_py <- exp(singlemeta_reg_py$b) ci_lb_py <- exp(singlemeta_reg_py$b - 1.96 * singlemeta_reg_py$se) ci_ub_py <- exp(singlemeta_reg_py$b + 1.96 * singlemeta_reg_py$se) #打印结果 print(data.frame(OR = OR_values_py, CI_Lower = ci_lb_py, CI_Upper = ci_ub_py)) print(data.frame(OR = round(OR_values_py, 2), CI_Lower = round(ci_lb_py, 2), CI_Upper = round(ci_ub_py, 2))) #获取仅包含截距项的模型(无预测变量) null_model <- metagen(TE = meta_prop$TE, seTE = meta_prop$seTE, data = data) tau2_null <- null_model$tau^2 #已经有了含预测变量的模型 singlemeta_reg_py,从中提取 tau^2 tau2_model <- singlemeta_reg_py$tau^2 #根据公式计算 R^2 R2 <- (tau2_null - tau2_model) / tau2_null #打印 R^2 结果$ print(paste("R^2 =", round(R2, 3)))检查代码有没有错误
08-05
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值