Puisque j'ai pu implémenter la deuxième étape dans l'article précédent, "Ajouter le paramètre 1 / paramètre 2 à chaque ligne en utilisant le tableau de comparaison du tableau 1", je vais le résumer. https://qiita.com/wellwell3176/items/7dba981b479c5933bf5f
A réussi à générer automatiquement les résultats montrés sur la figure 2 à partir des données brutes montrées sur la figure 1 et du tableau de comparaison. Figure 1 Gauche: Données brutes Droite: Tableau de comparaison Résultats de la figure 2
program
import openpyxl
wb1=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/data3.xlsx')
ws1=wb1.active
#Préparez un tableau de comparaison séparé en tant que maître. Je veux extraire la valeur numérique du côté principal au lieu de la formule, donc les données_only=Ouvrir avec vrai
wb2=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/table.xlsx',data_only=True)
ws2=wb2.active
for i in range(12):
for j in range(3):
copy = ws2.cell(row = i+1, column = j+3).value
ws1.cell(row = i+1, column =j+10,value=copy)
#La référence d'un autre livre ne s'est pas bien passée, alors copiez le tableau de comparaison une fois
#la gamme est i=Cela commence à 0, mais les lignes et les colonnes commencent à 1, donc ajustez
min_row=2
max_row=ws1.max_row #Obtenez le nombre de lignes car le traitement est appliqué de la deuxième ligne à la dernière ligne
ws1["H1"].value="Réglage 1"
ws1["I1"].value="Réglage 2" #C'était plus rapide d'entrer dans le cap
for i in range(min_row, max_row):
ws1.cell(row=i, column=7).value ="=D{}&E{}".format(i,i)
#Entrez la catégorie + entreprise dans la 7e colonne
ws1.cell(row=i, column=8).value ="=INDEX($J$1:$L$12,match(G{},$J$1:$J$12,0),2)".format(i)
ws1.cell(row=i, column=9).value ="=INDEX($J$1:$L$12,match(G{},$J$1:$J$12,0),3)".format(i)
#Utilisez INDEX pour interroger la table de recherche et la colonne 7. Entrez le résultat
wb1.save('/content/drive/My Drive/Colab Notebooks/data4.xlsx')
・ Je souhaite supprimer la colonne G, la colonne J, la colonne K et la colonne L de la figure 2 car elles ne sont pas nécessaires dans le processus suivant, mais je ne peux pas les supprimer car j'utilise une référence.
⇨ En tant que solution de force brute, vous pouvez ouvrir data4 avec data_only = true et copier et coller les colonnes autres que les colonnes inutiles dans un nouveau fichier, mais je pense que c'est inutile.
・ Je ne sais pas comment faire référence à un autre livre
Cette fois, j'ai copié le contenu de table.xlsx dans data4.xlsx puis j'ai utilisé la fonction INDEX, Il vaut mieux se référer à table.xlsx depuis le début ... mais je n'ai pas trouvé de moyen de le décrire. Ce sera la prochaine tâche.
Recommended Posts