Python小程序 - 表格数值统计

news2024/11/24 19:09:01
  • 题设:Excel表格中,计算如下图所示不同颜色(蓝、黄、桔)单元格值:各颜色填涂的单元格值的总和
  • 条件:
    - Excle表格中
    - 分色标记,单元格有值
    - 开始列(当前为D),开始行(当前为6)随机设置
    - 下三角直角边长(当前为10个单元格)随机设置,与桔色单行长度相同(当前为10个单元格)
    - 计算:1)蓝色单元格中值总和、蓝色单元格中值总和、蓝色单元格中值总和;2)各色单元格的数量

1. 方法1:Excel选中对应颜色的单元格,自动生成格子数和单元格值总和

2. 方法2:Excel格式查找(前题,先标颜色)
       蓝:660   ;黄:110     ;桔:660

3. 方法3:宏(VBA编程,没做,也许找时间试)

4. 方法4:Numpy(构建列表,然后分别计算,没做,也许找时间试)    

5. 方法5:python数格子(也许是最笨的方法),生成Excel的sum函数,计数、求和 (忽略代码冗余)

###################################
# 2023.12
# Sum as request
###################################

# 构建列组合
la = ['','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
lb =    ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']


sc = str.upper('D')  # 开始列,自动转成大写
##ec = 'AI' # 结束列
sr = 6    # 开始行
er = 37   # 结束行
bc = 10   # 下三角黄色边长
lw = 26   # English字母表长度

li = 0   # 开始列数值
if len(sc) == 1:
    li = lb.index(sc)
else:
    li = la.index(sc[0]) * lw + lb.index(sc[1])
lai = li//26
lbi = li%26

###################### up,上三角蓝色
##sum_up = 0         
up_str = '=sum('   # excle sum function string
up_cn = 0

sr_up = sr
er_up = er - bc    # 上三角下边界
sc_up = sc
ec_up = li + (er - bc - sr)

tlai = la[ec_up//26]
tlbi = lb[ec_up%26]
tc = er - bc - sr + 1  # 上三角边长

for r in range(tc):
    ti = li + tc - 1 - r
    tlai = la[ti//26]
    tlbi = lb[ti%26]

    up_str = up_str + sc + str(sr_up + r) + ':' + tlai + tlbi + str(sr_up + r) + ','
    up_cn = up_cn + tc - r

up_str = up_str + ")"
print("Up: ", up_str)
print("Up Count: ", up_cn)    

###################### mid,中间四边形桔色
##sum_mid = 0
mid_str = '=sum('  # excle sum function string
mid_cn = 0

sr_mid = sr
er_mid = er - bc
sc_mid = li + 1
ec_mid = li + (er - bc - sr) + bc

tc = er - bc - sr + 1  # 桔色高度

for r in range(tc):
    tsc = sc_mid + r         # 开始列
    tec = tsc + bc - 1    # 结束列
    tr = er_mid - r       # 行号  

    mid_str = mid_str + la[tsc//lw] + lb[tsc%lw] + str(tr) + ':' + la[tec//lw] + lb[tec%lw] + str(tr) + ','
    mid_cn = mid_cn + bc

mid_str = mid_str + ")"
print("Mid: ", mid_str)
print("Mid Count: ", mid_cn)   


###################### down,下三角黄色
##sum_down = 0
down_str = '=sum('   # excle sum function string
down_cn = 0          # down cell count

sr_down = er - bc + 1    # 下三角开始行
##sc_down = sc           # 下三角开始列
##ec_down = li + bc - 1  # 下三角结束列

tlai = lai
tlbi = lbi

for r in range(bc):
    ti = li + bc - 1 - r
    tlai = la[ti//26]
    tlbi = lb[ti%26]

    down_str = down_str + sc + str(sr_down + r) + ':' + tlai + tlbi + str(sr_down + r) + ','
    down_cn = down_cn + bc - r

down_str = down_str + ")"
print("Down: ", down_str)
print("Down Count: ", down_cn)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Up:  =sum(D6:Y6,D7:X7,D8:W8,D9:V9,D10:U10,D11:T11,D12:S12,D13:R13,D14:Q14,D15:P15,D16:O16,D17:N17,D18:M18,D19:L19,D20:K20,D21:J21,D22:I22,D23:H23,D24:G24,D25:F25,D26:E26,D27:D27,)
Up Count:  253
Mid:  =sum(E27:N27,F26:O26,G25:P25,H24:Q24,I23:R23,J22:S22,K21:T21,L20:U20,M19:V19,N18:W18,O17:X17,P16:Y16,Q15:Z15,R14:AA14,S13:AB13,T12:AC12,U11:AD11,V10:AE10,W9:AF9,X8:AG8,Y7:AH7,Z6:AI6,)
Mid Count:  220
Down:  =sum(D28:M28,D29:L29,D30:K30,D31:J31,D32:I32,D33:H33,D34:G34,D35:F35,D36:E36,D37:D37,)
Down Count:  55

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1312241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的咖啡销售系统vue论文

摘 要 现代社会是计算机技术普遍发展与应用的社会,甚至无网不成行,由此可见信息网络已经在商家活动或者人们生活中占据非常重要的地位,成为各行业不可割舍的重要组成。而随着网络地位的越来越突出,网络平台已经超越电视、报纸等传…

记一次clickhouse启动报错

clickhouse一次排错 clickhouse启动报错 报错: Application: Code: 210. DB::Exception: Listen [::]:8123 failed: Poco::Exception. Code: 1000, e.code() 0, DNS error: EAI: Address family for hostname not supported (version 23.3.1.2823 (official bui…

新零售ERP软件功能有哪些?新零售ERP系统哪个操作简单

新零售企业通常存在多仓库、多营销渠道、多业务模式、价格策略灵活、供应链复杂等情况,如何实现配送、财务、客户、订单、仓储等业务数据一体化和智能化管理,是不少新零售企业需要解决的难点。 随着新零售企业数量不断增多,行业之间的竞争也…

【Python必做100题】之第十四题(反向输出四位数)

题目:编写程序:输入一个四位整数,反向输出对应的四位数 思路:将整数转化为字符串类型,利用字符串的切片进行逆转输出 代码如下: #编写程序:输入一个四位整数,反向输出对应的四位数…

小间距LED显示屏在会议室的应用

LED显示屏作为自发光显示设备,在其高亮度、远观距离、高对比度和清晰度等特点的推动下,已经成为不可或缺的显示设备之一。随着LED显示屏厂家和整个产业链对产品的不断完善,小间距LED显示屏正逐渐成为会议室中的首选。那么,什么是细…

【深度学习】强化学习(三)强化学习的目标函数

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略(Policy)4、马尔可夫决策过程5、强化学习的目标函数1. 总回报(Return)2. 折扣回报(Discounted Return)a. 折扣率b. 折扣回报的定义 3.…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于乐观行动-评判深度强化学习的含氢综合能源系统低碳经济调度》

这个标题涉及到基于乐观行动的深度强化学习在含氢综合能源系统低碳经济调度方面的评判。让我们逐步解读: 基于乐观行动(Optimistic Action): 可能指的是在决策或行动中采取积极、乐观的策略,即在不确定性环境下&#x…

高效排队,紧急响应:RabbitMQ Priority Queue全面指南【RabbitMQ 九】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 高效排队,紧急响应:RabbitMQ Priority Queue全面指南 引言前言第一:初识RabbitMQ Priority Queue插件插件的背景和目的:为什么需要消息优先级&#xff1…

C++ 指针基础

指针的定义 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {int a 10;printf("%p\n", &a); // &a 表示取&#xff08;a&#xff09;的地址 000000842FD9FB64// 存放指针&#xff08;地址&#xff09;的变量就是指针变量&#xff0c…

系统运行占用过高

1、CPU过高的问题排查 示例代码&#xff1a; public class Test { static class MyThread extends Thread { public void run() { // 死循环&#xff0c;消耗CPU int i 0; while (true) { i; } } } public static void main(String args[]) throws InterruptedException { ne…

DevOps搭建(十二)-阿里云镜像仓库的使用详解

有时候,不想在服务器自己搭建镜像仓库,那么我们可以使用阿里云镜像仓库,详细使用方法如下。 1、容器镜像服务 阿里云镜像服务地址: https://cr.console.aliyun.com/cn-hangzhou/instances 选择个人实例 2、创建命名空间 3、创建镜像仓库 考虑到安全性,仓库类型选择我…

【贝叶斯分析】计算机科学专业博士作业二

1 第一题 1.1 题目 已知变量A和B的取值只能为0或1&#xff0c;A⫫&#x1d469;&#xff0c;且&#x1d45d;(&#x1d434;1)0.65&#xff0c;&#x1d45d;(&#x1d435;1)0.77。C的取值与A和B有关&#xff0c;具体关系如下图所表&#xff1a; ABP(C1|A,B)000.1010.99100…

使用Pytorch从零开始构建StyleGAN2

这篇博文是关于 StyleGAN2 的&#xff0c;来自论文Analyzing and Improving the Image Quality of StyleGAN&#xff0c;我们将使用 PyTorch 对其进行干净、简单且可读的实现&#xff0c;并尝试尽可能地还原原始论文。 如果您没有阅读 StyleGAN2 论文。或者不知道它是如何工作…

mysql 5.7.34升级到5.7.44修补漏洞

mysql 5.7.34旧版本&#xff0c;漏扫有漏洞&#xff0c;升级到最新版本 旧版本5.7.34在 /home/mysql/mysql中安装 备份旧版本数据还有目录 数据库备份升级 tar -xf mysql-5.7.44-el7-x86_64.tar #覆盖旧版本数据库文件 #注意看看文件是否和你起服务的用户一样 \cp -r mysql-5…

开发者必备的5类AI工具,不容错过!

在当今快节奏和激烈竞争的时代&#xff0c;提高工作效率和产品质量变得尤为重要。作为软件开发者&#xff0c;也必须紧跟现代化工具的步伐&#xff0c;以保持领先优势。在这篇文章中&#xff0c;笔者总结了2023年开发者必备的5类AI工具&#xff0c;这些工具将帮助您提升工作效率…

【六】python观察者设计模式

6.1行为型模式简介 观察者设计模式是最简单的行为型模式之一,所以我们先简单了解一下行为型模式 创建型模式的工作原理是基于对象的创建机制的。由于这些模式隔离了对象的创建细 节&#xff0c;所以使得代码能够与要创建的对象的类型相互独立。结构型模式用于设计对象和类的结…

精准运维的利器:风险控制模型

导读&#xff1a; 前期在《承载运维成功之梦&#xff1a;精准运维》一文中阐述了精准运维的原理、方法和实例。所谓精准运维&#xff0c;就是通过一系列方法掌握服务对象所使用信息系统的特性及其所服务企业的业务特性&#xff0c;通过掌控信息系统运行风险、运行特点、资源调…

C语言——字符函数和字符串函数(二)

&#x1f4dd;前言&#xff1a; 上一篇文章C语言——字符函数和字符串函数&#xff08;一&#xff09;对字符函数和字符串函数strlen&#xff0c;strcpy和strncpy&#xff0c;strcat和strncat进行了初步的讲解 这篇文章主要再讲解几个我们常用到的其他字符串函数&#xff08;附…

el-tree 高亮某些节点

:render-content"renderContent"

DevOps 和人工智能 – 天作之合

如今&#xff0c;人工智能和机器学习无处不在&#xff0c;所以它们开始在 DevOps 领域崭露头角也毫不令人意外。人工智能和机器学习正在通过自动化任务改变 DevOps&#xff0c;并使各企业的软件开发生命周期更高效、更深刻和更安全。我们在 DevOps 趋势中简要讨论过这一问题&am…