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

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

在实际工作中,我们经常需要从某列返回数据,该数据对应于另一列满足一个或多个条件的数据中的最大值。 如下图1所示,需要返回指定序号(列A)的最新版本(列B)对应的日期(列C)。 ?...原因是与条件对应的最大值不是在B2:B10中,而是针对不同的序号。而且,如果该情况发生在希望返回的值之前行中,则MATCH函数显然不会返回我们想要的值。...B10,0)) 转换为: =INDEX(C2:C10,MATCH(4,B2:B10,0)) 转换为: =INDEX(C2:C10,MATCH(4,{4;2;5;3;1;3;4;1;2},0)) 很显示,数组中的第一个满足条件的值并不是我们想要查找的值所在的位置...: =INDEX(C2:C10,1) 得到: 2013-2-21 这并不是满足我们的条件对应的值。...由于数组中的最小值为0.2,在数组中的第7个位置,因此上述公式构造的结果为: {0;0;0;0;0;0;1;0;0;0} 获得此数组后,我们只需要从列C中与该数组出现的非零条目(即1)相对应的位置返回数据即可

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

    Excel公式练习45: 从矩阵数组中返回满足条件的所有组合数

    本次的练习是:如下图1所示,在一个4行4列的单元格区域A1:D4中,每个单元格内都是一个一位整数,并且目标值单元格(此处为F2)也为整数,要求在单元格G2中编写一个公式返回单元格A1:D4中四个不同值的组合的数量...,条件如下: 1....这四个值的总和等于F2中的值 2. 这四个值中彼此位于不同的行和列 ? 图1 下图2是图1示例中满足条件的6种组合。 ? 图2 先不看答案,自已动手试一试。...关键是,参数cols固定为数组{0,1,2,3},显然意味着四个元素组合中的每个都将分别来自四个不同列,然后变换传递给参数rows的数组,即满足确保没有两个元素在同一行的条件的所有可能排列。...这个数组为OFFSET函数的rows参数值,而先前已讨论过,其cols参数值为{0,1,2,3},因此: N(OFFSET(A1,IF(MMULT(0+(ISNUMBER(FIND({1,2,3,4},

    3.3K10

    mysql中将where条件中过滤掉的group by分组后查询无数据的行进行补0

    背景 mysql经常会用到group By来进行分组查询,但也经常会遇到一个问题,就是当有where条件时,被where条件过滤的数据不显示了。...例如我有一组数据: 我想查询创建时间大于某一范围的spu的分组下的sku的数量 正常的sql查出的话,假如不存在相关记录 SELECT product_id , count( *) count FROM...create_time >= #{param} AND product_id in (1,2,3,4,5) GROUP BY product_id 结果查不到任何记录 即使没有数据,也想让count显示出0而不是空的效果...因此,我们想实现,即使没有数据,也想让count显示出0而不是空的效果; 解决方案:构建一个包含所有productId的结果集;然后和我们本来的sql进行左外连接,在最外层利用ifnull函数 sql...product_id in (1,2,3,4,5) GROUP BY product_id ) AS b ON a.product_id = b.product_id 本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持

    22910

    R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

    由于业务中接触的数据量很大,于是不得不转战开始寻求数据操作的效率。于是,data.table这个包就可以很好的满足对大数据量的数据操作的需求。...MA',"TX")) from_data_table = hospital_spending_DT[State %in% c('CA','MA',"TX")] dplyr用filter,content满足某种条件的进行筛选...—————————————————————————————————————————————— 六、额外的参数(来源:R语言data.table速查手册) 1、mult参数 mult参数是用来控制i匹配到的哪一行的返回结果默认情况下会返回该分组的所有元素...nomatch参数用于控制,当在i中没有到匹配数据的返回结果,默认为NA,也能设定为0。...,他包含了各个分组,除了by中的变量的所有元素。.

    9.3K43

    懒癌必备-dplyr和data.table让你的数据分析事半功倍

    找到合适的packages并学习使用它,绝对会让我们数据分析工作事半功倍! 我们有没有发现dylyr包中函数使用的一些规律? 有的!...①第一个参数都是数据集df ②查询条件都是关于如何操作数据集的,在列上面进行操作 ③返回的都是新的数据集,不会改变原始数据集 在介绍下一个包之前,我们先来引入一个dplyr包的综合运用: grouped...data.table包 dplyr已经可以满足我们数据分析工作中大部分的需求,后来该包的作者又开发了一个炫酷吊炸天的包“data.table” 如果你的日常处理数据在几万到十几万行,那么用dplyr...使用i DT[3:5] #选取3到5行的数据 class(DT) [1] "data.table" "data.frame" DT[v1=="A"] #基于条件的选择 DT[v1 %in% c("A",...以上讲的这些只是我工作中data.table用得最多的功能,它的强大之处还远远不止这些!如果你想深入,可以去官网下载文档,你绝对值得拥有!

    2.5K70

    作者仅提供了fpkm格式表达量矩阵的转录组测序数据集该如何重新分析呢

    单元格中的值表示该基因在该样本中的读段计数。 FPKM/FPKM-UQ(每千个碱基每百万片段的比率/未量化的FPKM): FPKM是标准化的表达量指标,考虑了基因长度和测序深度。...FPKM-UQ是未量化的FPKM,它没有经过标准化处理,通常用于避免引入人为的表达量变化。 TPM(每千个转录本每百万片段的比率): TPM是另一种标准化的表达量指标,它考虑了样本中的总转录本数。...TPM使得不同样本间的基因表达量可比。 CPM(每百万计数的比率): CPM是一种简单的标准化方法,将计数除以样本的总计数乘以百万。 它用于归一化数据,使得不同样本间的表达量可比。...,有一些样品不满足前面的转录组定量要求就被暴力删除了,其实也是合理的选择样品 : 不满足前面的转录组定量要求就被暴力删除了 当然了,就算是我们拿到了DESeq2/edgeR要求的输入数据是计数矩阵(raw...count矩阵和分组信息 : # load counts table from GEO urld <- "https://www.ncbi.nlm.nih.gov/geo/download/?

    32110

    R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    在base包里和split功能接近的函数有cut(对属性数据分划),strsplit(对字符串分划)以及subset(对向量,矩阵或数据框按给定条件取子集)等。...")],function(x) sum(x)) 4、subset()函数 利用subset()函数进行访问和选取数据框的数据更为灵活,subset函数将满足条件的向量、矩阵和数据框按子集的方式返回。...5、which定位函数 功能:返回服从条件的观测所在位置(行数),有一定的排序功能在其中。...(iris$setosa)] #按照照setosa的大小,重排Sepal.Length数据列 四、dplyr与data.table data.table可是比dplyr以及python中的...data.table包提供了一个非常简洁的通用格式:DT[i,j,by],可以理解为:对于数据集DT,选取子集行i,通过by分组计算j。

    20.9K32

    深入内核丨12C 新特性之 TOP - N 频率柱状图原理和算法

    例如,1000枚硬币中只有一枚面值1分的硬币,那在创建柱状图分组时,它就可以被忽略。Top - N 频率柱状图能产生一个更利于"流行数据"(高频率数据)的柱状图。...所以,产生 Top - N 频率柱状图的另外一个必要条件是设置的分组数或者默认分组数设置(默认254)小于其唯一值数。 在进一步为字段收集统计数据之前,统计数据收集过程首先会计算近似唯一值数。...然而,如果 TOP - N 数值的数据总数在该字段的非空值数据总数中的比例低于一个阈值(1-1/MNB,MNB 为最大分组数,Maximum Number of Buckets,它是影响选择频率柱状图还是高平衡柱状图的重要因素...因而,TOP - N 数值的数据总数在该字段的非空值数据总数中的比例大于(1-1/MNB)也成为产生 Top-N 频率柱状图的一个必要条件。...相应的,要根据调整后的 Top - N 数据记录总数在非空数值记录总数中的比例再与阈值比较以决定是否采纳 Top - N 频率柱状图。 概括产生 Top - N 频率柱状图的条件: 1.

    93620

    并相互引用,统计索引中某一个字段的空值率?语法是怎么样的?

    _id" // 使用文档的ID字段进行计数 } }, "filtered_count": { // 统计满足特定条件的文档数量 "value_count...filtered_count:使用 value_count 统计满足特定条件的文档数量。条件是字段 my_field 非空且非零。...filtered_count 的条件判断:检查字段 my_field 是否非空且非零。bucket_script 聚合:计算满足条件的文档数量占总文档数量的百分比。...max:查找数值字段的最大值。extended_stats:获取数值字段的多个统计数据(平均值、最大值、最小值、总和、方差等)。value_count:计算字段的非空值数量。...histogram:基于数值字段将文档分组为多个桶。terms:基于字符串或数值字段将文档分组为多个桶。filters:将文档分组为多个桶,每个桶对应一组过滤条件。

    22020

    热图到底是横向基因层面归一化还是依据纵向的样品呢?

    这个研究里面的转录组数据是通过RNA测序(RNA-seq)技术获得的,这些数据来自两个不同的细胞类型:树突细胞(Dendritic Cells, DCs)和巨噬细胞(Macrophages),以及它们在不同实验条件下的反应...不同的细胞类型就是不同的数据集,每个数据集内部都是4个分组: IC(Immune Complexes)刺激:树突细胞被免疫复合物刺激,这是模拟体内免疫反应的一种实验条件。...在(Gene Expression Omnibus, GEO)中,可以通过提供的访问号码GSE200033和GSE200226获取这两个数据集的表达量矩阵。...(scipen = 20)#不以科学计数法显示 library(data.table) datadata.table::fread("GSE200226_CountTable_BMDC.csv.gz...,然后是卵清蛋白刺激和IC的稍微小一点的差异,然后每个组里面的5个重复其实也略微有一点点分组,可能是先做了3个重复然后补了2个样品。

    6710

    深入内核丨12C 新特性之 TOP - N 频率柱状图原理和算法

    例如,1000枚硬币中只有一枚面值1分的硬币,那在创建柱状图分组时,它就可以被忽略。Top - N 频率柱状图能产生一个更利于"流行数据"(高频率数据)的柱状图。...所以,产生 Top - N 频率柱状图的另外一个必要条件是设置的分组数或者默认分组数设置(默认254)小于其唯一值数。 在进一步为字段收集统计数据之前,统计数据收集过程首先会计算近似唯一值数。...然而,如果 TOP - N 数值的数据总数在该字段的非空值数据总数中的比例低于一个阈值(1-1/MNB,MNB 为最大分组数,Maximum Number of Buckets,它是影响选择频率柱状图还是高平衡柱状图的重要因素...因而,TOP - N 数值的数据总数在该字段的非空值数据总数中的比例大于(1-1/MNB)也成为产生 Top-N 频率柱状图的一个必要条件。...相应的,要根据调整后的 Top - N 数据记录总数在非空数值记录总数中的比例再与阈值比较以决定是否采纳 Top - N 频率柱状图。 概括产生 Top - N 频率柱状图的条件: 1.

    938120

    R练习50题 - 第一期

    例如股票600128,如果它一共有100天的观测,那么我们会出现100个重复结果。为了去重,我们需要借助于data.table中的unique函数。 我们希望最终的输出是一个字符串向量: ?...unique:找出symbol中不重复的值。 在data.table的语法中,先进行列选择操作,再对列进行处理。所以上述语句会先执行str_detect,再执行unique。...其次,对于每个组,我们需要生成两个统计数字:一个统计上涨的个数,一个统计下跌的个数。最终结果如下: ? 可以看到,对于每个date,它都对应了两个观测,一个是“UP”,一个是“DOWN”。...它是data.table内置函数之一,和unique几乎执行相同的操作,唯一不同的是,unique返回的是不重复的item(是一个向量),而uniqueN返回的是不重复的数量(是一个数字)。...整个代码的执行顺序是:先选择行(逗号空白行),再分组(keyby语句),最后进行组间统计(num语句)。 我们的答案中,行、列以及分组三条语句各占一行,实际上这仅仅是为了让代码更直观。

    2.5K40

    表达量芯片的代码当然是可以移植到转录组测序数据分析

    ) tmp = fread(fs[1],data.table = F) head(tmp) gid=fread(fs[1],data.table = F)[,1] head(gid) rawcount...它使用年龄、AST(天门冬氨酸转氨酶)和ALT(丙氨酸转氨酶)水平以及血小板计数来计算。 评分范围:通常从1到3,分数越高表示肝纤维化的风险越高。...它使用AST和血小板计数来计算。 评分范围:通常从0到2,分数越高表示肝纤维化的风险越高。 解释:APRI指数用于估计NAFLD患者的肝纤维化风险。...BARD评分: 描述:BARD评分是一种用于评估NASH患者的肝纤维化风险的系统。它使用BMI(体重指数)、AST/ALT比率和糖尿病状况来评分。...,比如也是默认的9个分组的基因集: 默认的9个分组的基因集合 肉眼可以看到9个分组的基因集里面的,其中c1是持续下降,c4和c8是持续上升啦,但是c4和c8也有细微区别。

    25130

    R语言高级数据结构data.table

    首先看下此格式数据的生成: fread 自带的读入数据的函数,可以直接将txt,csv读入并生成相应的data.table格式数据。...接下来我们看下data.table数据类型的运算,其基础的运算既包含data.frame所有的运算方式,同时又有升级的运算: 1....3. data.table中数据函数的调用以及并行运算的加入: DT[,sum(y)] DT[,.(sum(y),sum(v))] ? 4. 自定义函数的执行,需要用{}包裹所有的命令。...分组计算的运算,可以单列分组也可以多列分组: DT[,.(sum=sum(y)),by=x] DT[,.(sum=sum(v)),by=.(x,y)] ? 6....各分组的计数函数.N,例: DT[,.N,by=x] 7. 其中数据各列的增加,删除,修改,用到的函数是:=。 DT[,y1:=y] DT[,y:=NULL] DT[,y:=(y+1)] ?

    2.1K30

    超全的 100 个 Pandas 函数汇总,建议收藏

    统计汇总函数 函数 含义 min() 计算最小值 max() 计算最大值 sum() 求和 mean() 计算平均值 count() 计数(统计非缺失元素的个数) size() 计数(统计所有元素的个数...等价于逻辑“与” value_counts() 频次统计 cumsum() 运算累计和 cumprod() 运算累计积 pct­­_change() 运算比率(后一个元素与前一个元素的比率) 数据清洗函数...(返回与序列长度一样的bool值) notnull() 判断序列元素是否不为缺失(返回与序列长度一样的bool值) dropna() 删除缺失值 fillna() 缺失值填充 ffill() 前向后填充缺失值...() 字符分隔 数据筛选函数 函数 含义 isin() 成员关系判断 between() 区间判断 loc() 条件判断(可使用在数据框中) iloc() 索引判断(可使用在数据框中) compress...dt.day() 抽取出日 dt.hour() 抽取出时 dt.minute() 抽取出分钟 dt.second() 抽取出秒 dt.quarter() 抽取出季度 dt.weekday() 抽取出星期几(返回数值型

    1.4K20

    R练习50题 - 第二期

    练习 4 沪深300成分股中,每天上涨、下跌的股票各有多少? 分析: 本题仍旧是Ex-2的拓展,只不过要求我们进行行选择操作。在data.table的dt[i,j,by]语法中,i代表行选择操作。...index_w300是一个数值变量,与零进行比较运算后会生成一列与原向量等长的布尔向量(例如 c(True, False False, True...))。...data.table只会选择为True的那些元素。 在data.table的dt[i, j, by]语法中,先执行行选择操作i, 再执行分组操作by, 最后执行列操作j。...习题 7 每天涨幅超过5%、跌幅超过5%的股票各有多少? 分析: 这一题的关键思路还是Ex-2中的分组。首先,我们自然要对日期分组,然后按照updown进行分组。...ifelse(ret > 0.05, "up5%+", "down5%+")的意思是,如果条件(ret > 0.05)成立,那么取值up5%+,否则取值down5%+.

    88820

    MySQL(五)汇总和分组数据

    一、汇总数据 工作中经常需要汇总数据而不是将它们全部检索出来(实际数据本身:返回实际数据是对时间和处理资源的浪费),这种类型的检索有以下特点: ①确定表中的行数(或者满足某个条件或包含某个特定值的行数)...,avg_price中返回该供应商的产品的平均值; PS:avg()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出,为了获得多个列的平均值,必须使用多个avg()函数{avg()函数忽略列值为...NULL的行}; 2、count()函数 count()函数进行计数,可利用count()确定表中行的数目或符合特定条件的行的数目; count()函数有两种使用方式: ①使用count(*)对表中行的数目进行计数...; 这条SQL语句利用count(*)对customers表中所有行计数,计数值在num_cust中返回; select count(cust_email) as cum_cust from customers...; 这条SQL语句中国返回products表中price列的最大值; PS:MySQL允许max()用来返回任意列中的最大值,包括返回文本列的最大值;但用于文本数据时,如果数据按相应的列排序,则max(

    4.7K20
    领券