精华内容
下载资源
问答
  • 如何使用 Power Pivot 进行模糊匹配

    千次阅读 2020-03-31 21:07:51
    之前在《使用Power Query进行模糊匹配》一文中我们讨论了如何在Power Query中进行模糊匹配,今天我们来讨论下在Power Pivot中的模糊匹配。 还是之前的案例,图1为产品表,图2为颜色价格匹配表,需要根据颜色将颜色...

    之前在《使用Power Query进行模糊匹配》一文中我们讨论了如何在Power Query中进行模糊匹配,今天我们来讨论下在Power Pivot中的模糊匹配。

    还是之前的案例,图1为产品表,图2为颜色价格匹配表,需要根据颜色将颜色价格表中的价格匹配到产品表中,因为产品表中没有能与匹配表中的【颜色】字段直接匹配的列,所以我们需要用【产品】字段中的颜色进行模糊匹配。

    我们先将两张表加载进Power BI中,分别命名为“产品”和“颜色价格”。

    file

    我们的思路是先在产品表中新建列【颜色】,获取到产品表中准确的颜色,然后再根据该字段去和颜色价格表中的颜色做关联,进而获取价格信息。

    那么,怎么生成产品表中的【颜色】字段呢?有大神写出了如下公式:

    颜色 = 
    FIRSTNONBLANK(FILTER(VALUES('颜色价格'[颜色]),
    SEARCH('颜色价格'[颜色],'产品'[产品],1,0)),1)
    

    现在我们来理解下这个公式。

    其中Filter为筛选函数,筛选VALUES(‘颜色价格’[颜色])这张表。而VALUES(‘颜色价格’[颜色])返回的是颜色价格表中非重复的【颜色】列表,即Filter函数筛选的是下表,我们将其命名为颜色表。

    file

    那么Filter对颜色表的筛选条件是什么呢?

    筛选条件是:

    SEARCH('颜色价格'[颜色],'产品'[产品],1,0)

    Search的用法如下:

    SEARCH(<find_text>,<within_text>, [start_num])

    file

    以产品表中的第一行“ASD23809宝石红S码“来举例,公式即为:

    FILTER(‘颜色’, SEARCH(‘颜色’[颜色], “ASD23809宝石红S码”,1,0))

    即颜色表中的每一行都会遍历一遍,返回当前行的颜色在“ASD23809宝石红S码”这个字符串中的位置。
    当返回的位置是0以上的数字时,代表“ASD23809宝石红S码”中含有这个颜色,该颜色就会被筛选出来;当返回的位置为0时,代表“ASD23809宝石红S码”中不包含这个颜色,便不会被筛选出来。
    同理,产品表中的每二行、第三行…都会走一遍这个流程。

    哎?有人可能会问,为什么不为0时就会被筛选出来,而为0时就不会被筛选出来呢?

    关于这个问题,大家可以做个小测试,filter(表,0)返回一张空表,而filter(表,任意非零数字)则会返回整张表。所以,当上文提到的遍历‘颜色’表中的每一个颜色时,若search函数返回的是非0值,则这个颜色就会被筛选出来,否则不会被筛选出来。

    外面嵌套的FIRSTNONBLANK函数返回当前上下文筛选列中的第一个不为空的值,即当”ASD23809宝石红S码“中包含两个颜色时,只取被筛选出来的第一个颜色。

    因此,用此公式我们就可以在产品表中生成如下【颜色】字段。

    file

    但是……当我们想用此列与颜色价格表建立关系获取价格时,却被告有循环依赖关系。

    file

    其实这也比较好理解,毕竟我们是通过‘颜色价格’【颜色】得到的‘产品’【颜色】,现在再用这两列建关系,产生循环依赖也就不奇怪。那怎么办呢?

    要解决这一问题,可以在查询编辑器中引用‘颜色价格’表,生成一个与之相同的辅助表,在生成‘产品’【颜色】字段时,利用这个辅助表生成,而建立关系时则选择‘颜色价格’这张表。

    好啦,今天的分享就到这儿,有什么疑问或者建议文下留言呦~

    file


    ** PowerPivot工坊原创文章,转载请注明出处!*

    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


    长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

    展开全文
  • 使用 Power Query 进行模糊匹配

    千次阅读 2020-04-08 19:36:43
    在数据分析中,我们经常会需要数据匹配,比如将事实表与维度表进行匹配来获取维度表中的信息。...那么在Power Query中怎么进行模糊匹配呢? 比如,我们需要给下列左图中的产品匹配上价格: 在Power Quer...

    在数据分析中,我们经常会需要数据匹配,比如将事实表与维度表进行匹配来获取维度表中的信息。对此,我们可以通过Power Query中的合并查询,或者在Power Pivot中建立关系而轻易实现,但是前提是匹配列的数据是能对应得上的,如果是模糊匹配,那用以上的方法便会匹配不上。

    那么在Power Query中怎么进行模糊匹配呢?

    比如,我们需要给下列左图中的产品匹配上价格:
    file
    在Power Query中并没有菜单操作可以实现模糊匹配,需要自定义函数来解决此问题,那我们来看下比较简单的能实现此功能的自定义函数是怎样的吧:

    file

    首先,我们先把两张表导进同一个查询,分别命名为“产品”和“颜色价格”:

    file

    然后自定义模糊匹配函数:

    Fx = (x) => Table.SelectRows(颜色价格, each Text.Contains(x,[颜色])){0}[价格]

    其中Fx为函数的名称;
    (x)为参数名称,即函数作用于的对象;
    Table.SelectRows(颜色价格, each Text.Contains(x,[颜色]))
    表示筛选颜色价格表中,[颜色]字段被x包含的行,即此函数得到的是一张经过筛选的表,后面加上{0}[价格]表示取这张表第一行[价格]列的数据。

    函数定义好后就可以调用这个函数了:

    价格 = Table.AddColumn(产品,"价格", each try Fx([产品]) otherwise null)

    此公式代表在产品表中新建一列,命名为“价格”,将刚刚自定义好的函数作用于产品表中的[产品]列,得到的值就是[价格]列对应的值。

    比如“ASD23809宝石红S码”这个数据↓↓↓:

    Table.SelectRows(颜色价格, each Text.Contains(“ASD23809宝石红S码”,[颜色]))

    该函数表示“ASD23809宝石红S码”文本中是否包含[颜色]字段的值,包含的话,颜色价格表中,该[颜色]字段值所在的行就会被筛选出来。后面加上{0}[价格]表示在被筛选出来的很多行中取第一行[价格]列的值,即“18.6”。

    故得结果如下:
    file

    今天的分享就到这儿,关于使用Power Query进行模糊匹配,坊友们有什么疑问或是更好的解决方法,欢迎踊跃留言~


    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
    file


    长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

    展开全文
  • Hive字段间进行模糊匹配

    千次阅读 2020-08-03 14:34:35
    hive字段间可以进行模糊匹配,如下: select * from t; +------+------+ | t.s | t.p | +------+------+ | abc | a% | | abc | bbc | | abc | abc | | abc | a__ | | abc | a_ | +------+------+ select * from t ...

    hive字段间可以进行模糊匹配,如下:

    select * from t;
    +------+------+
    | t.s  | t.p  |
    +------+------+
    | abc  | a%   |
    | abc  | bbc  |
    | abc  | abc  |
    | abc  | a__  |
    | abc  | a_   |
    +------+------+
    
    select * from t where s = p;
    +------+------+
    | t.s  | t.p  |
    +------+------+
    | abc  | abc  |
    +------+------+
    
    select * from t where s like p;
    +------+------+
    | t.s  | t.p  |
    +------+------+
    | abc  | a%   |
    | abc  | abc  |
    | abc  | a__  |
    +------+------+
    
    select * from t where p like s;
    +------+------+
    | t.s  | t.p  |
    +------+------+
    | abc  | abc  |
    +------+------+
    
    展开全文
  • SELECT T2.列名,T1.列名 FROM 主表 T1, 匹配表 T2 WHERE T1....注意: a:需要在进行模糊匹配的列数据前后加上% b:通过主表对匹配表进行like查询 转载于:https://www.cnblogs.com/husam/p/10448568.html...

    SELECT T2.列名,T1.列名  FROM 主表 T1, 匹配表 T2 
       WHERE  T1.匹配列  LIKE CONCAT('%',concat(T2.匹配列,'%'));

    注意:
       a:需要在进行模糊匹配的列数据前后加上%
       b:通过主表对匹配表进行like查询

    转载于:https://www.cnblogs.com/husam/p/10448568.html

    展开全文
  • 如何做一个可输入的下拉框,进行模糊匹配 1.引入jquery 2.样式调整 3.完整代码如下: 在这里插入代码片 ```<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name=...
  • 对List集合进行模糊匹配、过滤

    千次阅读 2019-09-04 16:52:53
    今天工作需要写了一个模糊匹配List的工具类,根据模糊字段返回符合条件的对象集合,有需要的朋友可以参考一下。代码如下: package com.aheagle.nztrp.util; import java.lang.reflect.Field; import java.util....
  • java 后台如何通过用户输入的汉字 进行模糊匹配 比如姓名 输入好 获取所有姓名中有好的人名
  • fuzzywuzzy库是Python中的模糊匹配库,它依据 Levenshtein Distance 算法 计算两个序列之间的差异。 Levenshtein Distance 算法,又叫 Edit Distance 算法,是指两个字符串之间,由一个转成另...
  • 对乡村地名进行模糊匹配

    千次阅读 2016-09-09 11:30:29
    想法是这样的,根据一个随手输入的乡村地名,匹配出其严格的五级行政地址。例如输入的”无极县东侯坊乡南池阳村助农点“,便要匹配出”河北省-石家庄市-无极县-东侯坊乡-...大概的思路是首先进行分词,如上面的
  • ②利用正则匹配 ar len = carName.length; var arr = []; var reg = new RegExp(keyWord); for(var i=0;i;i++){ //如果字符串中不包含目标字符会返回-1 if(carName[i].match(reg)){ arr.push(carName[i]); ...
  • 这篇博文要和大家分享的是用LIKE 运算符进行模糊匹配查询下图数据源商品代号包含数字的数据。我们用Microsoft query连接数据源,步骤请参考本系列第一篇博文。语句如下图其中 LIKE '%[0-9]%'执行结果如下然后将结果...
  • 在项目中往往会遇到对double类型的数据进行模糊查询,在arcengine开发中应该如何做呢,查了一下帮助应该用cast方法进行数据类型转换,具体方法如下: //查询条件 string strb = string.Empty; if (this.tbxcode....
  • 1.pandas dataframe  ...n.*')] #使用正则表达式进行模糊匹配,*匹配0或无限次,?匹配0或1次 pyspark dataframe 中模糊匹配有两种方式 2.spark dataframe api, filter rlike 联合使用 df1=d...
  • /** 根据filterName以list中fileName属性进行模糊匹配 * @param list 需要过滤的集合 * @param fileName 属性名称 * @param fileterName 模糊匹配的值 * @return */ public static List filterByNameLike(List...
  • selenium模糊匹配控件

    2017-02-17 19:03:00
    起因:在查找一些控件时,可能控件的一些属性是变化的,那在匹配时需要进行模糊匹配,模糊匹配,使用xpath 定位方式有种: contains(属性名,字符串):使用文本匹配,功能很强大 starts-with(属性名,字符串):...
  • 文章目录使用编辑距离算法进行模糊匹配使用fuzzywuzzy进行批量模糊匹配fuzz模块process模块整体代码使用Gensim进行批量模糊匹配Gensim简介使用词袋模型直接进行批量相似度匹配使用TF-IDF主题向量变换后进行批量...
  • R 数据表模糊匹配

    2019-11-28 10:17:08
    想要把A表中num1与B表中PHN_NBR两个字段进行模糊匹配。num1为主表,但是问题两张表之间没有联系,怎么匹配呢? 思路:在A表中新生成一列ID,仅仅区别行数。循环A表与B表,当num1与PHN_NBR匹配成功后,在B表中新增加...
  • redis集群中的模糊匹配

    千次阅读 2019-01-20 16:16:05
    ,keys *是一次性返回所有满足条件的键,而redis是一个单线程的reactor,如果满足条件的数量很多的话就会堵塞线程,极大降低了redis的存取速度,那还有什么办法不堵塞线程的情况下进行模糊匹配呢,这个设计者肯定是...
  • Redis和Redis集群模糊匹配删除key

    千次阅读 2019-04-15 15:51:18
    在数据库内我们可以通过like关键字、%、*或者REGEX关键字进行模糊匹配。而在Redis内我们如何进行模糊匹配呢?集群情况Redis Cluster的情况是否和单机一致呢?前段时间我对于这个议题进行了调查和研究。 单节点的...
  • redis模糊匹配删除

    2019-05-27 21:37:00
    要对redis某个库的key值进行模糊匹配删除,搜了好多网上文章,没找到办法,经大神指导方成 redis-cli -h IP地址 -p 端口号 -n 库名 KEYS 正则匹配表达式 | xargs redis-cli (-h (IP地址) -p 端口号 del 但仍有几...
  • Java实现字符串组合的模糊匹配

    万次阅读 2019-03-10 11:27:58
    接到这么一个需求:根据用户输入内容(以下简称S)对一系列的字符串组合(每个字符串组合以下简称Z)进行模糊匹配,返回匹配的字符串组合(以下简称R)。 举个例子,有如下一系列的Z:(ab),(ab,cd),(ab,cd,ef) 当S为...
  • 在数据库内我们可以通过like关键字、%、*或者REGEX关键字进行模糊匹配。而在Redis内我们如何进行模糊匹配呢?集群情况Redis Cluster的情况是否和单机一致呢?前段时间我对于这个议题进行了调查和研究。 单节点的...
  • mybatis特殊字符模糊匹配

    千次阅读 2018-03-27 17:01:13
    1、如果user表中存放的username格式如下图,其中包含特殊符号,如果进行模糊匹配用like肯定是不行的了 SELECT u.* from `user` u where u.username like '%_%' 2、解决方法:使用instr函数 select u.*...
  • 一句话系列:姓名模糊匹配算法

    千次阅读 2018-11-19 19:14:52
    对中文姓名进行模糊匹配 import re list_ = [(&amp;amp;quot;赵紫斌&amp;amp;quot;, &amp;amp;quot;赵*斌&amp;amp;quot;), (&amp;amp;quot;李方雪&amp;amp;quot;, &amp;amp;quot;李**...
  • 字符串模糊匹配是NLP自然语言处理中一项十分重要的研究项目。 今天给大家介绍的就是字符串模糊匹配。 文章链接:NLP教程:字符串模糊匹配
  • 两张表进行字段模糊匹配关联

    千次阅读 2018-06-07 15:22:00
    tableauexcel
  • 组内有一个需求,要求可以对用户输入的IP进行模糊匹配出相关的结果集。 这里的模糊是指,用户可以输入不完整的IP,例如:10.58和192.16.2.,当然IP地址每一段仍需符合IP的格式,当不完整的IP传给后台后,需要补齐...
  • 在使用hive的中需要多表关联的时候,想使用模糊匹配的like进行模糊匹配的时候,执行代码如下所示: SELECT * FROM TABLE1 A LEFT JOIN TABLE2 B ON A.XX LIKE CONCAT('%' , B.YY , '%') 这段代码在DB2 中是可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,110
精华内容 42,444
关键字:

怎么进行模糊匹配