Je suis en train de réfléchir à la meilleure façon de résoudre le problème ci-dessous. Toute contribution est grandement appréciée.
Exemples de colonnes de feuille Excel:
Column A | Column B | Column C
Apple | Apple |
Orange | Orange |
Pear | Banana |
Je veux qu'Excel me dise si les éléments des colonnes A et B correspondent ou ne correspondent pas et affichent les résultats dans la colonne C. La formule que j'entre dans la colonne C serait =IF(A1=B1, "Match", "Mismatch")
Sur Excel, je ferais simplement glisser la formule vers le reste des cellules de la colonne C pour leur appliquer la formule et le résultat serait:
Column A | Column B | Column C
Apple | Apple | Match
Orange | Orange | Match
Pear | Banana | Mismatch
Pour automatiser cela en utilisant un script python, j'ai essayé:
import openpyxl
wb = openpyxl.load_workbook('test.xlsx')
Sheet = wb.get_sheet_by_name('Sheet1')
for cellObj in Sheet.columns[2]:
cellObj.value = '=IF($A$1=$B$1, "Match", "Mismatch")
wb.save('test.xlsx')
Cela a écrit la formule dans toutes les cellules de la colonne C, mais la formule ne faisait référence qu'aux cellules A1 et B1, donc toutes les cellules de la colonne C = Correspondance.
Column A | Column B | Column C
Apple | Apple | Match
Orange | Orange | Match
Pear | Banana | Match
Comment voulez-vous gérer cela?
Vous souhaiterez probablement rendre la création de la formule dynamique afin que chaque ligne de C
soit tirée des lignes correspondantes de A
et B
:
for i, cellObj in enumerate(Sheet.columns[2], 1):
cellObj.value = '=IF($A${0}=$B${0}, "Match", "Mismatch")'.format(i)