dポイントプレゼントキャンペーン実施中!

Excelの関数に詳しい方お力をお貸し下さい。
Excelで業務割り振りシフトを作成したいのですが、図の様に曜日事に担当者がおり業務が分かれています。
例としまして22日の日にAさんの業務はPC。Bさんは電話。Cさんは事務の業務です。
それを別シートにあるまた違う表の業務担当者のセルに=として(※この図では電話担当にBさん、PC担当にAさん、事務担当にCさんとして表したいのですがその様な関数はあるのでしょうか?
この他にも様々な業務とたくさんいる担当者を手書きで書いていたのですが効率化を図りたいのでどなたか分かる方、詳しい方、よろしくお願い致します。

「Excelで業務割り振りシフトを作成する」の質問画像

質問者からの補足コメント

  • どう思う?

    ご返信ありがとうございます!
    INDEX関数とMATCH関数で出来ました。
    補足なのですが担当者が休みでいない場合があり#N/Aの文字が出るセルがあるのですがこれを非表示にする関数はあるのでしょうか?
    再度よろしくお願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/07/23 00:04
  • うーん・・・

    前の関数の=INDEX(A3:A5,MATCH("PC",B3:B5,0),1)の関数の前にIFERROR関数をくっつければよろしいのでしょうか?
    よろしくお願いします。

    No.4の回答に寄せられた補足コメントです。 補足日時:2016/07/23 13:40

A 回答 (5件)

#N/Aのエラー表示に対してはIF関数とISERROR関数の組み合わせやIFERROR関数で対処しましょう。



=IF(ISERROR(数式),"",数式)
=IFERROR(数式,"")

これはエラー処理と呼ばれるものです。
例として割り算をしている場合を考えてみます。
C1セルに
 =A1/B1
と入力されていて、A1セルとB1セルの値で割り算をしていたとします。
B1セルに「0」が入力されたら、エラーになることは分かると思います。(ゼロで割ったらダメですよね)
エラーになった時、C1セルはエラー表示ではなく空欄にしたいという場合、
 =IF(ISERROR(A1/B1),"",A1/B1)
または
 =IFERROR(A1/B1,"")
のように記述してエラーになったときは空欄になるようにします。


※IFERROR関数はExcel2007から追加された関数です。
 IFERROR
 ISERROR
 の各関数について自身で良く確認してください。
この回答への補足あり
    • good
    • 0
この回答へのお礼

=IFERROR(INDEX(A3:A5,MATCH("PC",B3:B5,0),1)"")
でエラーを空欄に出来ました!
他の方のお礼もご一緒にさせていただきます。
ありがとうございました。

お礼日時:2016/07/24 03:15

ママチャリさんの回答に近いかな


=IF(ISNA(MATCH(LEFT(B8,2),INDEX($B$3:$D$5,,MATCH(LEFT($B$7,FIND("日",$B$7)-1)*1,$B$1:$D$1,0)),0)),"休み?",
INDEX($A$3:$A$5,MATCH(LEFT(B8,2),INDEX($B$3:$D$5,,MATCH(LEFT($B$7,FIND("日",$B$7)-1)*1,$B$1:$D$1,0)),0)))
XL2007以降でなくてもOKです。#N/AエラーをISNA関数で対処してます。

IFERROR使えるなら
=IFERROR(INDEX($A$3:$A$5,MATCH(LEFT(B8,2),INDEX($B$3:$D$5,,MATCH(LEFT($B$7,FIND("日",$B$7)-1)*1,$B$1:$D$1,0)),0)),"休み?")
    • good
    • 0

B9セルに次の式を入力して、D9までオートフィルします。


=INDEX($A$3:$A$5,MATCH(B$8,INDEX($B$3:$D$5,0,MATCH($B$7,$B$1:$D$1,0)),0))

ちなみに、B7セルは数字だけの入力とし、書式設定で「0"日の業務割り振り"」としてください。
また、8行目は「担当」は取って、「電話」、「PC」、「事務」としてください。
    • good
    • 0

No.1の回答と同じです。


C9のセルには、次の式が入ってます。
=INDEX($A$3:$A$5,MATCH(LEFT(C8,2),OFFSET($A$2,1,MATCH($B$7,$B$1:$F$1,0),3,1),0))
「Excelで業務割り振りシフトを作成する」の回答画像2
    • good
    • 0

MATCH関数とINDEX関数で求められると思います。



22日と固定して数式を示してみます。
各関数は、
 MATCH関数:=MATCH(検索値,範囲 [,照合の型])
 INDEX関数:=INDEX(範囲,行番号,列番号)
のようにして使います。
=INDEX(A3:A5,MATCH("PC",B3:B5,0),1)
これで22日の"PC"担当の人の名前が返ってきます。

”電話”担当や”事務”担当についても同様にできます。
これをB8セルからD8セルまでの値からさらに関数を使って引っ張ってくることもできますが、
どうせ手で入力することになるので、ここは直接指定したほうが見た目が分かりやすく、また処理も軽くなります。(別に処理は重くならないとは思うけどさw)

22日についても他の関数で計算させることもできますが、条件が不明なのでこのままとさせてもらいます。
(B3:B5の範囲を関数で指定するのです)
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!