2017-07-31 6 views
-1

ので、私はそれに2枚のシートがある1つのExcelワークブック、すなわち"test.xlsx"別のシートの列Bにある一致に基づいてExcelシートの列Cにデータを挿入するにはどうすればよいですか?

を持って次のデータを

銀行

Name ID Leaves 
-  1 0 
-  3 0 
-  2 0 
-  4 0 

ユーザーは、次のデータを使用してください:

Name ID Leaves 
-  1 5 
-  2 10 
-  3 15 
どのような私のに対し

Name ID Leaves 
    - 1 5 
    - 3 10 
    - 2 15 
    - 4 0 

私はこのシートに私のスクリプトを実行すると、私は新しいファイルを取得するには、そのファイルに「ready.xls」と呼ばれる私はこの出力を備えた今、操作銀行シートを持っていますこのようにする必要がありたい:

Name ID Leaves 
- 1 5 
- 3 15 
- 2 10 
- 4 0 

私はID列が両方のシートに同じデータを持つにもかかわらず、ユーザーシート内のデータが同期していない、そしてそれは明らかに問題を引き起こしていることを実現しています。最初にソート/シリアライズすることで修正できますが、それは自分のデータセットにとって理想的ではありません。このスクリプトはこの不規則性に対処し、何らかの形で望ましい結果を印刷する必要があります。これは可能ですか?どんな助けも高く評価されるでしょう。ここで

は、これまでの私のコードです:https://pastebin.com/KYdWcqCD

PS:私はこのライブラリを利用していますが大丈夫openpyxl

+0

私はあなたのコードへのアクセス権を持っていない、あなたはここに投稿することができますか?また、ID「1」の値が「銀行」では5、「ユーザー」では10であれば、あなたの新しいファイルでは15であることを期待していますか? – Zac

+0

私のコードはここのペーストビン:https://pastebin.com/KYdWcqCD – pyari

+0

の 'bank'シートにあり、' leaves'カラムは 'bank'の' ID'の全ての値に対して '0'です。シート。そう、次。IDの値が 'user'シートの' 1'で、同じシートの 'leave'カラムが' 5'なので '1'が' ID'で最初は '1 = 5'です。 'leaves 'に対応する値です。スクリプトにそのことを考慮し、 'bank'シートに行き、一致する' ID 'を検索します。この場合IDは '1'なので、' 1 'を見ると '5'が自動的に'それのすぐ隣に 'leaves'カラムがあります。@ Zac – pyari

答えて

0

と呼ばれます。私は問題を解決しました。

私の以前の直感は、この問題に関するすべてのことが正しいことを示しています。以前の私のコードはIDSと呼ばれるリストにすべてのIDSbankのシートを入れていたとIDSリストの任意の要素がuserシートのIDS列で見つかった任意の要素と一致し、かつそれがuserからのleavesデータをコピーするかどうかを調べますbank without matching the IDS`。

私はスクリプトの全体の構造を変更しました。私はIDSLeavesを両方のシートから2つの異なるリストに入れました。 keys=IDSvalues=leavesのようなものでmydict=1:5のような辞書を作成しました。 IDSKeysをマッチさせ、すべての正確な一致について、対応するvaluesを上記の辞書からコピーしました。とボイル!問題は修正されました。

PS:ここに更新されたコードへのリンクです:https://pastebin.com/zdgD9bpv

関連する問題