Excel应该这么玩——1、命名单元格:干掉常数

命名单元格:通过名称来引用单元格中的值,常用于引用固定不变的值。
单元格是Excel中存储数据的最小单位,在公式中通过A1、B2之类的名称来引用其中的值。A1只是单元格的坐标,就好像人的身份证号。生活中我们都是通过姓名称呼一个人,而不是身份证号。但是在Excel公式中却存在大量使用单元格坐标的情况,能不能给单元格起个更容易理解的名字呢?当然可以,具体怎么用, 下面举个栗子:
 
1、土掉渣的方法
平时加班工资按时薪的1倍计算,节假日加班工资按2倍计算。给出员工的时薪和各类加班时数,求加班费。一般会输入如下公式:

如果是新手看到这个公式,第一眼肯定不理解其中的1、2表示什么含义。怎么把其中的常数换成容易理解的概念呢?
 
2、创建常数表
如下,在另一个Sheet中创建一个列表,把各类加班的时薪倍率列举出来。这时候我们可以通过B3这个地址引用单元格中的值,把公式中的1换成B3,但B3依然只是给电脑定位的名称。接下来选择B3单元格,在左上角显示单元格地址的名称框输入平时加班倍率,下面的以此类推。
 
3、公式变身
回到之前的表格,把其中的数值换成刚才输入的名称即可,如下:
小技巧
名称自动补齐:输入的过程中会有下拉提示,可以按上下键选择候选项,然后按Tab就会自动补全名称。
 
这样公式要比之前的要容易理解,当然还有改进的空间,比如不出现B2、C2、D2这种地址引用(下一篇会讲到)。这个公式中数值只有两个,命名单元格的作用没完全发挥出来。如果是在很多个公式中都用到某个常数,一旦要修改常数值,就会牵一发而动全身,导致很多公式都要修改。
下面是命名单元格的更多功效:
(1)如果数值发生了变化,只需要修改命名单元格中的值,不需要修改所有用到它的公式。
(2)把命名单元格剪切复制到其他地方,还是会正确引用。
(3)需要修改命名单元格中的值时,在名称框中下拉并选择名称,就能定位到命名单元格,省掉了查找的步骤,如下图。
(4)修改命名单元格的名称后,使用到这个单元格的公式中的名称也会同步变化。修改已经命名的单元格的名称方法如下:
定位到【公式】菜单页,点击【名称管理器】。或者通过快捷键Ctrl+F3打开【名称管理器】对话框。
弹出【名称管理器】对话框,选择要修改的名称,点击【编辑】按钮。
在【编辑名称】对话框中修改名称即可,其中可以看到引用位置就是之前选中单元格的绝对地址。
在名称框中直接修改并不会将单元格名称改掉,而是会给这个单元格创建一个新的名称。这样可以通过多个名称引用单元格,不过并不建议这么做。
 
4、小结
在程序员的世界里只有菜鸟才直接用数字,通过名称引用才是明智的做法,可以把这种方法引用到Excel中。
虽然这里改进之后公式中不再存在让人看不懂的数字,但是地址引用还是让人没法很容易理解。
如何采用更加高大上的方法,请听下回分解。
 

系列文章

0、初衷:用IT方法玩Excel

1、命名单元格:干掉常数

2、命名列:消除地址引用

3、命名表格:彻底改造公式

4、命名区域:搞定下拉框

5、三种数据:Excel也是系统

6、链接:瞬间转移

7、我是预言家:绘制趋势图



转载于:https://www.cnblogs.com/conexpress/p/3978574.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
您好!关于您的问题,可以通过以下步骤实现: 1.创建一个 QTableWidget,设置行和列的数量。 ```cpp QTableWidget* tableWidget = new QTableWidget(rowCount, columnCount, this); ``` 2.在单元格添加文本。 ```cpp tableWidget->setItem(row, column, new QTableWidgetItem("text")); ``` 3.设置 QTableWidget 的拖放模式为 MoveAction,以便可以将单元格拖动到另一个单元格。 ```cpp tableWidget->setDragDropMode(QAbstractItemView::DragDropMode::MoveAction); ``` 4.实现 QTableWidget 的拖动事件,获取拖动单元格的行和列。 ```cpp void MyTableWidget::mousePressEvent(QMouseEvent* event) { if (event->button() == Qt::LeftButton) { QTableWidgetItem* item = itemAt(event->pos()); if (item != nullptr) { m_draggedItem = item; m_draggedRow = item->row(); m_draggedColumn = item->column(); } } } void MyTableWidget::mouseMoveEvent(QMouseEvent* event) { if (event->buttons() & Qt::LeftButton && m_draggedItem != nullptr) { QMimeData* mimeData = new QMimeData; QByteArray itemData; QDataStream dataStream(&itemData, QIODevice::WriteOnly); dataStream << m_draggedRow << m_draggedColumn; mimeData->setData("application/x-qabstractitemmodeldatalist", itemData); QDrag* drag = new QDrag(this); drag->setMimeData(mimeData); drag->exec(Qt::MoveAction); } } void MyTableWidget::dragEnterEvent(QDragEnterEvent* event) { event->acceptProposedAction(); } void MyTableWidget::dragMoveEvent(QDragMoveEvent* event) { event->acceptProposedAction(); } void MyTableWidget::dragLeaveEvent(QDragLeaveEvent* event) { event->accept(); } ``` 5.实现 QTableWidget 的放置事件,将拖动单元格的文本替换为目标单元格的文本。 ```cpp void MyTableWidget::dropEvent(QDropEvent* event) { QPoint dropPoint = event->pos(); int row = rowAt(dropPoint.y()); int column = columnAt(dropPoint.x()); QTableWidgetItem* targetItem = item(row, column); if (targetItem != nullptr) { QByteArray itemData = event->mimeData()->data("application/x-qabstractitemmodeldatalist"); QDataStream dataStream(&itemData, QIODevice::ReadOnly); int draggedRow, draggedColumn; dataStream >> draggedRow >> draggedColumn; QTableWidgetItem* draggedItem = item(draggedRow, draggedColumn); if (draggedItem != nullptr) { QString text = draggedItem->text(); draggedItem->setText(targetItem->text()); targetItem->setText(text); } } event->acceptProposedAction(); } ``` 这样,就可以实现 QTableWidget 的拖拽单元格并替换内容了。希望可以帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值