私は最初のコードを書いています(何かで始める必要があります:))私はインターネット上で私に何か似たような例が見つからないので、本当に苦労しています少なくとも取る方向。 私はそれを説明できるほど明確にしようとします。異なるファイルのセルに基づいてセルの値を更新
私は2つの.xlsxファイルを持っていますが、すべてが多くの地区を含んでいます。
FILE 1 - DATAS DEPENDING ON DISTRICT FILE 2 - DISTRICT UNIQUE
VALUES
columnA+B columnC columnE columnA columnE
DATA DEPARTMENT DISTRICT DEPARTMENT DISTRICT
" LIMA BARRANCA LIMA BARRANCA
" LORETO BARRANCA LORETO BARRANCA1
" LORETO BARRANCA SAN MARTIN BARRANQUITA
" SAN MARTIN BARRANQUITA LORETO BELEN
" SAN MARTIN BARRANQUITA CAJAMARCA BELLAVISTA
" SAN MARTIN BARRANQUITA PIURA BELLAVISTA1
" LORETO BELEN SAN MARTIN BELLAVISTA2
" SAN MARTIN BELLAVISTA
ご覧のとおり、地区は同じ名前を持つことができますが、重複は異なる部門に属します。
columnA+B columnC columnE columnA columnE
DATA DEPARTMENT DISTRICT DEPARTMENT DISTRICT
" LIMA BARRANCA LIMA BARRANCA
" LORETO BARRANCA1 LORETO BARRANCA1
" LORETO BARRANCA1 SAN MARTIN BARRANQUITA
" SAN MARTIN BARRANQUITA LORETO BELEN
" SAN MARTIN BARRANQUITA CAJAMARCA BELLAVISTA
" SAN MARTIN BARRANQUITA PIURA BELLAVISTA1
" LORETO BELEN SAN MARTIN BELLAVISTA2
" SAN MARTIN BELLAVISTA2
任意の提案を私を助けることができるツールのために: 私の期待される結果は次のようにFILE 1を更新するのですか?私は単純なforループでコードを試しましたが、同じ時間に4列にする方法を理解することはできません。
wb1 = FILE1
ws1 = worksheet1
wb2 = FILE2
ws2 = worksheet2
x=1
for distr1 in ws1['E']:
for i, j in itertools.product(range(1,ws2.max_row+1), range(1,ws1.max_row+1)):
distr2 = ws2.cell(row=i,column=5)
dept2 = ws2.cell(row=i, column=1)
dept1 = ws1.cell(row=j, column=3)
if distr2.value == str(distr1.value) + str(x) and dept2.value == dept1.value:
distr1.value = distr2.value
x +=1
おそらく
ないこの世界で最高のコードが、私が言ったように、私の最初の1つの:)
あなたがしようとしていることは本当に明確ではありません。あなたは単に2つのファイルをマージしようとしていますか? –
いいえ、もう少し複雑です。地区の名前は重複していることがあります。そのため、FILE2では一意の値になっています。 FILE1ではそうではありませんが、ランダムな接尾辞を追加するだけではありません。添付されている部門に関して、FILE2と同じでなければなりません。それは少し明確になることを願っています。 – zobalette