Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用另一列值检查列a上的每个值_Python_Excel_Excel Formula_Dax - Fatal编程技术网

Python 用另一列值检查列a上的每个值

Python 用另一列值检查列a上的每个值,python,excel,excel-formula,dax,Python,Excel,Excel Formula,Dax,在Excel或DAX中是否有任何方法可以检查一列的所有值是否存在于另一列中 示例-我有一个名为column 1的列,其中有一些值,如4,5,2,1。现在我想检查第2列上存在多少这样的值 作为输出,我希望如果该值存在,它可以变为绿色,否则为红色 我已经查找了很多地方,但我发现唯一有用的结果是可以找到一个sngle值,而不是单个列中的所有值 有人知道做这项工作的方法吗 既然您提到了Python,就可以使用Pandas库通过编程实现这一点: import pandas as pd # define

在Excel或DAX中是否有任何方法可以检查一列的所有值是否存在于另一列中

示例-我有一个名为column 1的列,其中有一些值,如4,5,2,1。现在我想检查第2列上存在多少这样的值

作为输出,我希望如果该值存在,它可以变为绿色,否则为红色

我已经查找了很多地方,但我发现唯一有用的结果是可以找到一个sngle值,而不是单个列中的所有值


有人知道做这项工作的方法吗

既然您提到了Python,就可以使用Pandas库通过编程实现这一点:

import pandas as pd

# define dataframe, or read in via df = pd.read_excel('file.xlsx')
df = pd.DataFrame({'col1': [4, 5, 2, 1] + [np.nan]*4,
                   'col2': [6, 8, 3, 4, 1, 6, 3, 4]})

# define highlighting logic    
def highlight_cols(x):
    res = []
    for i in x:
        if np.isnan(i):
            res.append('')
        elif i in set(df['col2']):
            res.append('background: green')
        else:
            res.append('background: red')
    return res

# apply highlighting logic to first column only
res = df.style.apply(highlight_cols, subset=pd.IndexSlice[:, ['col1']])
结果:

创建一个可选的隐藏列,该列将与我的示例中的搜索列相邻,即C列到B列

=IFISERRORVLOOKUPB1,$A$1:$A$4,1,0,FALSE,TRUE

这将确定值是否包含在第一个数据列表中,如果是,则返回true 然后使用简单的条件格式

按预期提供结果:


无需添加隐藏列即可轻松完成此操作,如下所示。如果您更改了A列中的数字,此项将随时更新

选择B列 条件格式->新规则->使用公式确定要格式化的单元格 在此处插入公式as=ORB2=$A$2、B2=$A$3、B2=$A$4、B2=$A$5=TRUE,并根据需要将单元格格式化为绿色 重复步骤1至2 在此处插入公式as=ORB2=$A$2、B2=$A$3、B2=$A$4、B2=$A$5=FASLE并按您的意愿将单元格格式化为红色 选择列名单元格以删除列标题格式 条件格式->清除规则->清除选定单元格中的规则
是否有任何理由将其标记为[python]?@jpp我在想a是否有可能使用任何python脚本条件格式来实现它,例如公式=COUNTIFB:B,$A2>0表示绿色,公式=COUNTIFB:B,$A2=0表示绿色Red@Glitch_Doctor谢谢你的回答,这很有效。@ChristoferHansen,在您的问题中,如果缺少一个值,您似乎希望整列变为红色。当B列中的所有内容都出现时,变为绿色。是否正确?或者提供的答案足够吗?你只是最好中的最好,谢谢你的回答。任何面临这个问题的人,我都会建议他们尝试这个解决方案。如果这是您想要的正确答案,请接受。