2017-05-13 14 views
2

私はMicrosoft Excelの初心者です。あなたのシフトに関する情報を入力する職場タイムシートを作成しようとしています。情報は自動的に他のスプレッドシートタブ内の請求書にコピーされます。 TimeSheet view (名前は明らかに秘密保持の目的で作成されています)。Excelのあるスプレッドシートから別のスプレッドシートへ特定の情報を転送する

目標は、それぞれの名前のためですが、自分の請求書やタイムシートに記載されているその名前に関する情報だけを持つように(。すなわちなど、チャーリー、ジョセフ、)入力された彼らの適切な請求書]タブに転送されます。 Invoice View

たとえば、タイムシートにCharlieという名前が2回表示されます。請求書タブの名前に「この請求書はCharlieにレンダリングされたサービスのためのものです」と記載され、チャーリーの情報(勤務時間、時間、日付)のみをその請求書のセルに追加するにはどうすればよいでしょうか?他の名前についても同じことをしますか?

これが可能かどうか、私が試みていることがわからない場合は教えてください。

+0

これは数式で実現可能です。数式は、IFERROR(INDEX(MATCH ...))のような十分な数の行を請求書に書く必要があり、タイムシートから適切な行を取得します。 Totalフィールドは、請求書で簡単に計算されます。私はそれがピボットテーブルで行えるかどうかも疑問です。 –

+0

IFERROR(Invoice(Charlie))のような何か?私はそれをどのようにフォーマットするかについてはあまりよく分かりません。また、名前の順番はタイムシートによって異なりますので、名前がタイムシート上の位置を変えてもその式は機能しますか?あなたのご意見ありがとうございます – vgplayer54

答えて

0

はちょうどあなたが始めるために、あなたが請求書シートのセルB11Charlie Pのような名前を持っており、あなたの請求書の行が空白行14を残して、B15で開始したとします。また、あなたのタイムシートが名前timeSheetを持ち、あなたのイメージのようなレイアウトを持っているとします。

これらのの配列式を使用することができます。表示されている行14にそれぞれを入力し、Ctrl+Shift+Enterを押します。その行をコピーして、特定の行数だけペーストします。

Formula for Date Column @ B14: 
=IFERROR(INDEX(TimeSheet!$C$7:$C$999,MATCH(1, (TimeSheet!$A$7:$A$999& " "& 
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C$999>B14),0)),"") 

Formula for Service Column @ C14: 
=IFERROR(INDEX(TimeSheet!$E$7:$E$999,MATCH(1,(TimeSheet!$A$7:$A$999& " " & 
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C999=B15),0)) & " - " & 
INDEX(TimeSheet!$E$7:$E$999,MATCH(1,(TimeSheet!$A$7:$A$999& " " & 
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C$999=B15),0)), "") 

Formula for Hours Column @ D14: 
=IFERROR(INDEX(TimeSheet!$G$7:$G999,MATCH(1, (TimeSheet!$A$7:$A$999& " " & 
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C$999=B15),0)),"") 

これが始まります。あなたはさらに調整することができますが、基本的にインボイスシートの他のフィールドはひどく正解です。つまり、total paid = total hr * rate/hrなどです。

関連する問題