我想在B列和C列中找到一个特定的值,并使用该信息来指定正确的行。不幸的是,B列中的值重复出现。
比方说,我需要在B列和C列中找到具有ABC的行。我需要脚本遍历两列,直到找到匹配项,然后我需要它提供值的行号被发现
答案 0 :(得分:0)
在仔细阅读了stackoverflow和其他各种资源之后,我想到的是这个。
基本上,我在B列中创建了一个列表,在C列中创建了一个列表。将这些列表压缩在一起以创建一个长元组,然后使用枚举来查找要查找的一对值所在的行。 / p>
无论如何,如果有人有更多的Pythonic解决方案,我将很高兴听到。
对于下面的代码,我要查找的值在B列中为3964729,在C列中为18
代码如下:
import openpyxl
wb = openpyxl.load_workbook("E:\\VoiceCore\\NSS HANDOVER NEW(5).xlsx")
ws = wb['Jan 20~ Jan 26']
#Creates a list of column B values
wo = []
for col in ws['B']:
wo.append(col.value)
#Creates a list of column C values
task = []
for col in ws['C']:
task.append(col.value)
#zips both lists in a tuple
woTask = zip(wo,task)
#enumerates the tuple
woRow = [i for i, e in enumerate(woTask, 1) if e == (3964729, 18)]
'''The woRow variable spits out row 78, which is the row that I was looking for,
but its type is list. I then do a for loop to extract the value out of the list to
get an integer, which I use for further processing'''
for i in woRow:
woRowInt = i