首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel公式技巧20: 从列表中返回满足多个条件的数据

在实际工作中,我们经常需要从某列返回数据,该数据对应于另一列满足一个或多个条件的数据中的最大值。 如下图1所示,需要返回指定序号(列A)的最新版本(列B)对应的日期(列C)。 ?...原因是与条件对应的最大值不是在B2:B10中,而是针对不同的序号。而且,如果该情况发生在希望返回的值之前行中,则MATCH函数显然不会返回我们想要的值。...这是必需的,因为接下来将会对该数组中的值求倒数,如果不执行此操作,则数组中的零将导致#DIV / 0!错误,这会在将数组传递给FREQUENCY函数时使事情更复杂。...而且,如果我们传递一个所有值都在0到1之间的值数组作为FREQUENCY函数的参数bins_array的值,将0作为其参数data_array的值,那么零将被分配给参数bins_array中的最小值;其余的为空或为零...由于数组中的最小值为0.2,在数组中的第7个位置,因此上述公式构造的结果为: {0;0;0;0;0;0;1;0;0;0} 获得此数组后,我们只需要从列C中与该数组出现的非零条目(即1)相对应的位置返回数据即可

9.3K10

七步搞定一个综合案例,掌握pandas进阶用法!

,说明【上海-桌子】中木桌,电脑桌销量已超桌子的50%。...文件读取-->分组求和-->分组排序-->计算各组累计百分比-->取Top3(需要与50%作比较)-->分组取列表-->文件保存。从具体实现上,可能还有其他处理技巧,如数据拼接(merge)等。...系列函数,本次用到的是excel格式,因此使用read_excel即可,读取成功后,用head查看数据样例。...为了验证结果,我们取出city='杭州',sub_cate='用品'的所有样本进行查看,这里用到了pandas多条件筛选数据操作。...result.to_excel('result.xlsx', index=None) 小结 本文使用pandas,通过7个步骤实现了一个综合案例:筛选出每个城市每个子类别中销量占比top 50%的至多3

2.7K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Excel编程周末速成班第21课:一个用户窗体示例

    现在,所有必需的控件都在窗体上。使用窗体设计器的格式化命令和工具来根据需要排列和调整控件的大小。完成的设计应该类似于图21-2。 ?...注意:验证代码放置在函数中(而不是子过程),因此它可以将值返回给调用程序:如果验证成功,则返回True;如果失败,则返回False。 验证过程的代码如清单21-3所示。...注意,除了函数中的代码外,返回说明符AsBoolean已添加到函数的第一行。你应该将此清单中的代码添加到你的程序中。...清单21-3:数据验证函数 Public Function ValidateData() As Boolean    '如果用户窗体中的数据完整,则返回True,否则返回False。    ...VBA学习信息 本文为知识星球:完美Excel社群正在陆续推出的《Excel编程周末速成班》系列中的一篇,到2020年12月27日,此系列已更新至第21课。

    6.2K10

    VBA实用小程序48: 确保工作簿已装载必需的外部加载宏

    学习Excel技术,关注微信公众号: excelperfect 如果你的Excel应用程序依赖于外部加载项(例如分析工具库或规划求解加载项),那么必须确保在运行应用程序之前加载了该加载项。...Rob Bovey提供了一个通用函数,该函数将确定当前是否加载了指定的加载项。如果还没有加载该加载项,则尝试加载它。如果成功加载该加载项,则函数返回True,否则,如果加载不成功,则返回False。...更高版本,规划求解加载项是SOLVER.XLAM. ''' szAddInName 出现在加载项对话框列表中的加载项名. ''' 例如...,规划求解加载项 ''' ''' 返回值:Boolean 如果该加载项已装载或者通过本程序已装载 ''' 则返回True. '''...On Error Resume Next ''' 如果已在加载项列表中选择了需要加载的加载项(如规划求解加载项), ''' 除非切换了Installed属性,否则不会打开其工作簿

    81430

    Excel实战技巧68:创建级联列表框(使用ADO技巧)

    在《Excel实战技巧67:在组合框中添加不重复值(使用ADO技巧)》中,我们使用记录集技巧给组合框添加了不重复值,并概要讲述了ADO记录集基础知识。本文利用记录集技巧,创建级联列表框。...也就是说,如果选择列表框Region中的某项,那么列表框Market和State仅显示在所选择的Region项中与该项关联的值。...同样,选择列表框Market中的某项,列表框State中仅显示与Market项中与该项关联的值。 解决方法 使用ADO记录集为子列表框提取记录,使用父列表框的值作为条件。...在本示例中,创建一个函数,接受子列表框作为其参数,然后使用该列表框判断提取什么数据以及填充哪个列表框。...OnClick事件只是简单地调用上面的函数,传递目标子列表框作为函数的参数: Private Sub lstMarket_Click() CallCascadeChild(ActiveSheet.OLEObjects

    1.3K20

    【重生之我学Python进阶】----第一章

    1、列表推导式 在需要创建多个列表、或者需要为列表填充具有一定规律的值时,能以极少的代码完成。...它的基本格式为: [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ] 下面将举几个例子进行说明: (1)为一个列表填充值 为一个列表填充范围为(1,10),能被2整除的数的两倍 li...试想,当你需要从爬取的网页源码中获取特定url时,并没有什么很好的方法直接找出,而使用正则则可以根据数据匹配出您需要的数据。...尽可能少地匹配 re.S 让.能匹配换行 """ 下面是一个小示例: 首先,引入re库 import re findall() 该函数在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式....*)', words).groups()) # 在起始位置匹配 结果: ('my name', 'edward_tan') sub() Python 的 re 模块提供了re.sub用于替换字符串中的匹配项

    7800

    Excel VBA编程

    方法和属性的区别是属性返回对象包含的内容或者具有的特点,如子对象、颜色、大小等;方法是对对象的一种操作,如选中,激活等 VBA中的运算符 算数运算符 运算符 作用 示例 + 求两个数的和 5+9=14...**如果记得某个函数大致拼写,在编写代码时只要在【代码窗口】中输入“VBA.”,就可以在系统显示的函数列表中选择需要使用的函数。...执行程序执行的基本语句结构 if语句 在VBA中,if语句的规则如下: if 条件 then 语句 else 条件 select case语句 尽管使用if语句可以解决“多选一”的问题,但当判断的选择条件过多时...但是VBA中没有Excel的内置函数,使用worksheetfunction可以调用Excel中的内置函数。...type参数的可设置项及说明 可设置的参数值 方法返回结果的类型 0 公式 1 数字 2 文本(字符串) 4 逻辑值(true or false) 8 单元格引用(range对象) 16 错误值 64

    45.8K33

    ExcelVBA文件操作-选择文件夹获取文件列表

    ExcelVBA文件操作-选择文件夹获取文件列表 近期学习了 =====start====== 1.ExcelVBA文件操作-获得文件夹中的所有子文件夹 2.ExcelVBA-打开对话框取得文件夹路径...SelectGetFolder = "没有选择" End If End WithEnd Function 进入文件夹后,接下来,要读取文件夹中的的文件列表(不包含子文件夹) 【知识点...GetFolder进入文件夹 (3)取得子对象Folder中的Files集合 Set fc=f.Files (4)再循环出文件列表 官方例子 Sub ShowFolderList(...可以由此把它写成一个函数 '输入文件夹,返回文件名列表(不包含子文件夹)Function GetFolderFiles(folderspec As String) Dim sfso As Object...一维数组的读取、输出、合并 ExcelVBA-自定义函数MultiConTosum用于多条件求和 ====end====

    63520

    ExcelVBA文件操作-选择文件夹(含子文件夹)获取所有文件列表

    ExcelVBA文件操作-选择文件夹(含子文件夹)获取所有文件列表 【回顾】 近期我们学习了 1.ExcelVBA-打开对话框取得文件夹路径2种方法 2.ExcelVBA文件操作-获得文件夹中的所有子文件夹...3.ExcelVBA文件操作-选择文件夹获取文件列表 到目前 我们已完成:1.先打开对话框2.选择文件夹3.获取文件夹4.得到文件夹(包含子文件夹)的路径5....获取文件夹(含子文件夹)内的文件列表 【问题】 选择文件夹(含子文件夹)获取所有文件列表 【解决思路】 第【1-3】步:可以用自定义函数(PS:此函数返回要进行是否为空的判断,如果为空要exit sub...for next传入到读取文件列表的函数,每次它会返回一个数组, 我们再在主程序新建一个【大数组】,把返回的数组一个一个读取出来,添加到【大数组】中就完成啦 读取文件列表也可以用自定义函数,如下 '输入文件夹...ExcelVBA文件操作-获得文件夹中的所有子文件夹 ExcelVBA-打开对话框取得文件夹路径2种方法 Excel VBA取白色单元格内容黄色的单元格的Address ExcelVBA随机生成不重复的

    97830

    VBA实战技巧32:安装Excel加载宏

    图1 复杂一点的方法就是,单击Excel左上角的“文件——选项”,在“Excel选项”对话框中,单击左侧的“加载项”选项卡,在右侧下方的“管理”下拉列表中选择“Excel加载项”,单击其右侧的“转到”按钮...Excel是如何管理加载宏列表的 在后台,Excel使用注册表和一个特殊文件夹来管理存在哪些加载项以及已安装了哪些加载项。...接下来它调用IsInstalled函数,该函数检查是否已安装加载项。 然后,有两个关于插件文件存储位置的检查。...Excel可以打开此类文件,但无法安装zip文件夹中的加载项。并且压缩软件会在关闭后立即删除Temp中的该文件夹。然后,会在Excel中得到一个指向已安装加载项的指针,该加载项没有随附的xlam文件。...最后一行关闭加载项打开的所有工作簿。为什么?因为当没有活动工作簿时你无法打开加载项对话框,显然这也会阻止Excel通过VBA将新加载项添加到列表中。

    5.3K20

    005从零开始学Python—字符串处理

    和find方法都是只能返回首次发现子串的位置; 如果子串在原字行串中没有找到,对于 index 方法来说,则返回报错信息,对于find 方法,则返回值-1; 推荐便用 find 方法寻找子串的位置,因为即使找不到子串也不会因为错误而影响其他程序的正常执行...1.匹配查询函数 findall(pattern,string,flags=0) findall 函数可以对指定的字符串进行遍历匹配,获取字符串中所有匹配的子串,并返回一个列表结果。...2.匹配替换函数 sub(pattern,repl,string,count=0,flags=0) sub 函数的功能是替换, 类似于字符串的 replace 方法,该函数根据正则表达式把满足匹配的内容替换为...如果写上圆括号也是返回一样的结果,所以 findall 就是用来返回满足匹配条件的列表值,如果有括号,就仅返回括号内的匹配值; 例三使用替换的方法,将所有的标点符号换为空字符,进而实现删除的效果; 例四是对字符串的分割...、a-zA-Z0-9()]'分割的话,返回的结果中包含空字符,如'2室2厅'后面就有一个空字符。 为了删除列表中每个元素的首尾空字符,使用了列表表达式并结合字符串的strip方法完成空字符压缩。

    92820

    ExcelVBA运用Excel的【条件格式】(四)

    ExcelVBA运用Excel的【条件格式】(四) 条件格式FormatConditions.AddTop10方法 TopBottom参数是必需的,它是一个枚举类型XlTopBottom,用于指定是显示前...如果为True,则Position被视为百分比;如果为False,则Position被视为具体数量。 Position参数是必需的,它是一个长整型,表示要高亮显示的值的数量或百分比。...【我的代码】 Sub AddTop10FormatCondition定位前10位() Dim ws As Worksheet Dim rng As Range ' 设置工作表...项的条件格式 ' 注意:这里的参数 TopBottom 设置为 xlTop10Top 表示前10项 ' Percent 设置为 True 表示基于百分比(即前10%的项),如果设置为 False...(可选,如果你只想保留这一个条件格式) ' rng.FormatConditions.Delete End Sub 【拓展】 以上代码你会写吗?

    9610

    最完整的VBA字符串知识介绍

    ,可以将其用作普通函数,也可以检索它返回的值,并根据需要使用。...字符串的左子字符串 如果有一个现有字符串,但希望使用字符串左侧字符中的多个字符创建一个新字符串,则可以使用Microsoft Excel 的LEFT函数或VBA的Left函数。...String2参数是要查找的字符或子字符串。如果在String1中找到String2(作为String1的一部分),函数将返回第一个字符的位置。...如果要从右侧开始检查,调用InStrRev函数,其语法是: InstrRev(stringcheck,stringmatch[, start[, compare]]) 替换字符串中的字符或子字符串 在字符串中找到字符或子字符串后...可以执行的操作之一是用另一个字符或子字符串替换该字符或子字符串。为此,Visual Basic语言提供了Replace函数,Microsoft Excel提供了REPLACE函数。

    2.8K20

    递归编程

    学习Excel技术,关注微信公众号: excelperfect 递归编程是一种强大的编程技术,可以极大地简化一些编程任务或者完成一些其他方式无法完成的任务。...测试所输入的值N,如果它是1,该函数只返回1;如果N大于1,Fact函数调用自己传递值N-1。该函数返回作为其结果的输入值N乘以N-1的自身评估值。...注意,在递归编程时,必须小心构建代码,以便在满足某些条件时正确终止程序。在Fact函数过程中,我们在N小于或等于1时结束递归调用。...End If R = AddUp(N + 1) AddUp = R End Function 在这段代码中,没有任何条件阻止AddUp过程调用其自身,对AddUp过程的每次调用都会导致对...该函数将继续不受限制地调用自身,直到VBA运行时中止过程执行序列。 示例:列出文件夹及子文件夹 下面的代码在工作表中列出指定文件夹中的所有子文件夹。

    80130

    Python让Excel飞起来:使用Python xlwings实现Excel自动化

    图3 至此,设置已完成,我们可以使用用Python自动化Excel了! 第二部分:自动化Excel 运行以下Python脚本,它将打开一个新的Excel实例。...Excel数据作为列表读取到Python中。...必须将其添加到def之前,以让xlwings知道这是一个用户定义的函数。 该函数必须返回某些内容,以便将返回的值传递到Excel中。...图12 注意到,当键入函数时,square实际上会显示在函数列表中——我们可以像使用Excel内置函数一样使用Python函数,并且可以将单元格引用传递到函数中。...上文中已讨论了如何修复此错误,确保Excel宏设置正确。 2.键入用户定义的函数时,单元格中会显示“Object Require”(对象要求)。

    9.7K41

    Excel VBA编程教程(基础一)

    首先选中左侧工程列表中的工作簿,后右键,在弹出的选项列表中,选择「插入」。二级菜单中,选择「模块」,完成插入新模块。 插入完成后,在工程列表对应工作簿内,在模块文件夹下,显示新插入的模块。...Excel VBA 对象 我们学习 VBA 的最终目的是操纵 Excel,完成一些特定的目标。其中,操纵 Excel 就是通过 Excel VBA 对象完成的。...---- ---- ---- Excel 是一个对象,这个对象包含很多属性和子对象,而 VBA 是可以操作这些对象的工具,实现各种各样的效果。...,如果符合比较条件,返回 True,否则,返回 False。...sum = sum + i i = i + 1 Loop End Sub i变量的初始值是 1,根据 While 后的条件,只要 i 变量小于等于 10,后续的代码就可以一直循环执行

    12.5K22
    领券