检查Column一列中的每个值以及其他列值

时间:2018-07-02 11:07:22

标签: python excel excel-formula dax

Excel DAX 中有什么方法可以检查单个列的所有值是否存在或不在另一列上。

示例-我有一列称为第1列,其中有一些值,例如4,5,2,1。现在我想检查第2列中有多少这些值!

作为输出,我希望如果值Path.toFile()仍然存在,它可以转到Green

enter image description here

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

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

3 个答案:

答案 0 :(得分:3)

由于您提到了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']])

结果:

enter image description here

答案 1 :(得分:2)

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

=IF(ISERROR(VLOOKUP(B1,$A$1:$A$4, 1, 0)), FALSE, TRUE)

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

enter image description here

按预期提供结果:

enter image description here

答案 2 :(得分:2)

您可以轻松地执行此操作,而无需添加如下所示的隐藏列。如果您更改A列中的数字,此信息将随时更新。

  1. 选择B列
  2. 条件格式->新规则->使用公式来确定要格式化的单元格
  3. 将公式插入为=OR(B2=$A$2,B2=$A$3,B2=$A$4,B2=$A$5) = TRUE,并根据需要设置单元格的格式(此处为绿色)
  4. 重复步骤1至2
  5. 将公式插入为=OR(B2=$A$2,B2=$A$3,B2=$A$4,B2=$A$5) = FASLE,并根据需要设置单元格的格式(此处为红色)
  6. 选择列名称单元格(以删除列标题格式)
  7. 条件格式->清除规则->清除选定单元格中的规则

Result