如何在包含字符串的列中查找单元格,并且在另一行中查找单元格的 return 值?

How to find cell in a column that contains a string and return value of a cell in another of row?

如果单元格包含 C 列中的 "external",则将 D 列中的单元格 "good" 复制到 E 列中,在A 列包含 003.

的行

下面是 excel 中的两张图片(之前和之后)。

之前:

之后:

我试图找到一个正确的脚本,但没有成功。它需要更改为我放置“???”的“行”和“列”。 :

import openpyxl
from openpyxl import load_workbook
wb_source = openpyxl.load_workbook("path/file.xlsx")
sheet = wb_source['Sheet1']
x=sheet.max_row
y=sheet.max_column

for r in range(1, x+1) :
   for j in range(1, y+1):
       copy(sheet.cell(row= ???, column=???)
         if str(copy.value)=="external":
         sheet.??
         break
wb_source.save("path/file2.xlsx")

应该如何添加(行和列)?

  1. 阅读全文sheet。
  2. 为外部产品创建字典
  3. 写回Excel。

尝试:

import openpyxl
wb = openpyxl.load_workbook("file1.xlsx")
ws = wb['Sheet1']

data = list()
for r, row in enumerate(ws.iter_rows()):
    data.append([cell.value for c, cell in enumerate(row)])
mapper = {l[0]: l[-1] for l in data if l[2]=="external"}

for r, row in enumerate(ws.iter_rows()):
    if ws.cell(r+1, 1).value in mapper:
        ws.cell(r+1, 5).value = mapper[ws.cell(r+1, 1).value]
wb.save("file2.xlsx")