ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2184|回复: 57

[求助] 一票否决的数据处理

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-14 11:28 | 显示全部楼层 |阅读模式
本帖最后由 qlmgu 于 2024-2-15 12:18 编辑

各位老师龙年春节快乐,万事如意!


假期在处理数据时遇到难题,试验过检索、透视表、筛选等方法,奈何技术不够,仍然要逐步手工处理多个步骤和大量数据,只好冒昧再次请教各位老师了。

数据说明:
1.关键指标可能有1至多列;可能有空单元格;
2.其他指标也可能多列;可能有空单元格
3.数据总共有4-6千行;

希望结果:
根据关键指标的否决根据,sheet2的A列给出对B列姓名的否决票(否决-根据,如果有多个不同的根据,希望列出)
根据各位老师的提示,我2024-2-15再次修改了方案和附件。
感谢谢各位老师。
sheet1.png

sheet2.png



一票否决修改方案2024-2-15修改.rar (12.7 KB, 下载次数: 2)


TA的精华主题

TA的得分主题

发表于 2024-2-14 11:52 来自手机 | 显示全部楼层
序号5和6是怎样的逻辑?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-14 12:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gwjkkkkk老师新年好。
感谢您关注这个问题。
序号5,B列名(姓名1)有不需要否决的数据,但是前面姓名1出现了否决数据(yes),所以,全部姓名1都要否决。
序号6,姓名5的关键数据有一空格,是实际可能存在的情况。如果不允许空格我再手工填写一个标志也可以。
我说请了吗?

TA的精华主题

TA的得分主题

发表于 2024-2-14 12:16 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-14 12:19 | 显示全部楼层
本帖最后由 qlmgu 于 2024-2-14 12:21 编辑

准提部林老师龙年新年好!
同一个人确实有可能多个否决数据,如果能都列出来最好(例如:否决-yes-出现)。这样形式的数据是想告诉被考核者哪里出了问题。感谢您。

TA的精华主题

TA的得分主题

发表于 2024-2-14 12:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
附件供参考。。。

一票否决.7z

18.95 KB, 下载次数: 9

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-2-14 12:27 | 显示全部楼层
参与一下。。。
  1. Sub ykcbf()  '//2024.2.14
  2.     Set d = CreateObject("Scripting.Dictionary")
  3.     r = Me.Cells(Rows.Count, "j").End(3).Row
  4.     zrr = Me.Range("j1:l" & r)
  5.     Me.[h2:h1000] = ""
  6.     r = Me.Cells(Rows.Count, 1).End(3).Row
  7.     arr = Me.Range("a1:h" & r)
  8.     For i = 2 To UBound(zrr)
  9.         For j = 1 To UBound(arr, 2)
  10.             If arr(1, j) = zrr(i, 1) Then zrr(i, 3) = j
  11.         Next
  12.     Next
  13.     On Error Resume Next
  14.     For i = 2 To UBound(arr)
  15.         s = arr(i, 2)
  16.         If Not d.exists(s) Then
  17.             For x = 2 To UBound(zrr)
  18.                 If arr(i, zrr(x, 3)) = zrr(x, 2) Then
  19.                     d(s) = "否决-" & zrr(x, 2)
  20.                 End If
  21.             Next
  22.         End If
  23.         If arr(i, zrr(x, 3)) = zrr(x, 2) Then
  24.             arr(i, 8) = d(s)
  25.         End If
  26.     Next
  27.     Me.Range("a1:h" & r) = arr
  28.     MsgBox "OK!"
  29. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-14 12:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2024-2-14 12:26
附件供参考。。。

ykcbf1100老师新年好!感谢您出手相助。我马上下载测试。

TA的精华主题

TA的得分主题

发表于 2024-2-14 12:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
qlmgu 发表于 2024-2-14 12:19
准提部林老师龙年新年好!
同一个人确实有可能多个否决数据,如果能都列出来最好(例如:否决-yes-出现) ...

J/K列, 若"关键指标1"有多個否決根据, 是以多行或分隔符輸入???

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-14 12:43 | 显示全部楼层
本帖最后由 qlmgu 于 2024-2-14 12:49 编辑
ykcbf1100 发表于 2024-2-14 12:26
附件供参考。。。

ykcbf1100老师新年好!感谢您出手相助。您的程序对模拟数据处理的很准确很好。
是我的需求没写清楚,抱歉了。
1.如果关键指标增加多列,后面的列都要变了,可以设计吗?或者把结果(原来的H列)与关键指标(原来的j)和否决根据(原来k)放在第二页A
C,D列?
2.否决结果最好反映多个指标,例如否决-yes-出现....等等。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 19:31 , Processed in 0.044323 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表