エクセルの関数で10人の当番表から日別の当番の名前を取得する方法は?

このQ&Aのポイント
  • エクセルの関数を使って、10人の当番表から日別の当番の名前を取得する方法を教えてください。
  • IF関数の複数条件で試した結果、ネストが7重までとのことでうまくいきません。
  • 例えば、掃除当番がAさん、洗濯当番がBさん、ゴミ当番がDさんというような日別の当番の答えを求める場合、どのような関数を使えば良いでしょうか。
回答を見る
  • ベストアンサー

エクセルの関数2

10人居るグループの当番表を作っています。 横列に10人の名前があって、縦列に日別の当番を記入しています。 別の場所に日別の当番ごとの名前を求めたいのですが、どのような関数を 使えば良いでしょうか。 IF関数の複数条件を試したのですが、ネストは7重までらしく上手くいきません。 例えば下記のような表で、1日の『掃除当番はAさん』『洗濯当番はBさん』『ゴミ当番はDさん』 という答えを求めたい。    Aさん Bさん Cさん Dさん Eさん Fさん Gさん Hさん Iさん Gさん 1日 掃除 洗濯      ゴミ           2日          掃除  洗濯  ゴミ よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 少し数式に、無理があるかもしれません。この種の問題は、どうしても大きな数式になってしまいます。 シート1 のA~K にデータがあるとして、 シート2 に書き出すとしたら、 A1: 書式: 0日 「1」 数字を入れる B1: =IF(COUNTA(OFFSET(Sheet1!$A$1,1,1,,11))>=ROW(Sheet1!A1),INDEX(OFFSET(Sheet1!$A$1,$A$1,1,,11),1,SMALL(INDEX(SUBSTITUTE((OFFSET(Sheet1!$A$1,$A$1,1,,11)<>"")*COLUMN(OFFSET(Sheet1!$A$1,,,,11)),0,10^3)*1,,),ROW(Sheet1!A1)))&"当番は、","") C1: =IF(B1<>"",INDEX(OFFSET(Sheet1!$A$1,,1,,11),1,SMALL(INDEX(SUBSTITUTE((OFFSET(Sheet1!$A$1,$A$1,1,,11)<>"")*COLUMN(OFFSET(Sheet1!$A$1,,,,11)),0,10^3)*1,,),ROW(Sheet1!A1))),"") フィルハンドルでドラッグしてコピー。

その他の回答 (2)

  • korolo
  • ベストアンサー率42% (39/92)
回答No.2

日別の当番を記入する方法を下記に変えた方が良いでしょう。  掃除  洗濯  ゴミ 1日Aさん Bさん Dさん 2日Cさん Dさん Eさん 以上

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

エクセルの関数を良く勉強してないせいで、こともなげに「関数で」 と書くが、エクセルは表の並べ替え問題は苦手です。 VBAでやる問題なんだが、VBAは経験無いだろう。 ーー それと同日に掃除を担当する人は2名以上いないのか、ははっきり書くべき。現実にはいると思うが、いるようだと関数ではお手上げかと思う。 ーー それと 日=担当=人名 の3つの要素があって 「1日の『掃除当番はAさん』『洗濯当番はBさん』『ゴミ当番はDさん』というが、どういう表構成にするのか、はっきり例示してないのでは。 ーーー掃除ー洗濯ーごみ 1日 山田ー鈴木ーX のような構成を良く考えて、(文章でさらさら書くのでなく)実例を明記すべきだ。 == Aなどは「掃除」などの文字列を単純化した例にした。 例データ A1:E4 ーは空白の意味。桁ずれを防ぐため入れた。 日 山田 島田 上野 鈴木 1 A ー C B 2 A ー C 3 B ー A C A6:D9に(手作業で) A B C 1 ー ー ー 2 ー ー ー 3 ー ー ー A7に入れる式は =INDEX($A$1:$E$1,1,MATCH(B$6,OFFSET($A$1,MATCH($A7,$A$1:$A$4,0)-1,0,1,5),0)) D7まで式を複写。 A7:D7を範囲指定し、D7で+ハンドルを出してA9:D9まで引っ張って式を複写。 結果 A B C 1 山田 鈴木 上野 2 島田 #N/A 鈴木 3 上野 山田 鈴木 #N/Aを空白にするのは、IF関数とISERROR 関数を使う。勉強してください。上記の式を組み立てるのは、IF関数を使おうとしているレベルの方には無理だ。頭がくらくらするだろう。関数(組み合わせ)の中でも極く難しいものに入るだろう。 じっくり列、行が増えたとき、A6:D9を他シートに持ってくるとき どう変えればよいかじっくり考えてください。

関連するQ&A

  • エクセル関数について質問です!!

    エクセル関数に関する質問です。商品入荷情報を一目で分かりやすい表を2タイプ作成したいと考えております。1つ目は縦列に商品、横列に行動、交わったところが実行日。例えばA商品を発注した日が2月1日とすると、(縦列)A商品と(横列)発注の交わったところに実行日2/1を入力するもの。そして2つ目はカレンダー形式で、何日に何(商品)がどうした(実行)が分かるもの。ここまでは通常の表を作成するだけですが、問題は1つ目の表で日付を入力し、自動的に連動して2つ目の表の2月1日のところに『発注』と入れれるように出来ればと考えています。こんなわがままな関数はあるでしょうか?ご存知な方教えてください!!!

  • エクセルのVLOOKUP関数について

    エクセルの関数で悩んでいます。 やろうとしていることは、たとえばA1のセルに日付(年月日)を入力すれば、入力した月だけを判断してその月の掃除当番の名前がセルB1に表示されるようにしたいのです。 1月から12月までの掃除当番は決まってますので、事前に別のセルに表を作成(たとえばH1~H12には1月、2月・・・・12月と入力し、I1~I12にはそれぞれの掃除当番名を入力して)し、VLOOKUP関数で呼び出せないかなぁと思っていたのですが、セルA1の日付(たとえば2006/8/27)から8月と判断する方法がわからないのです。 どなたかご存知でしたらご教授頂けないでしょうか。 他の関数を使用してする方法などでも結構です。 宜しくお願いいたします。

  • エクセルの関数式を教えて下さい

    A列にリンク貼り付けによる名前が入り、B・C列にはやはり関数(HLOOKUP)を入れ非表示にして D列に=IF(OR(B1="当番",C1="当番"),"当番","")を入れてますが、 A列はその月によって欠員があり A列に名前が表示されない時でもD列に"当番"が入ってしまうので、 その場合表示しないように したいのですが方法はありますでしょうか。

  • エクセルの集計(縦横での集計)

    (sumproduct関数やsumif関数を使うのでしょうか?) 縦列はA~Cの範囲で今後も増えていきます。 横列は1~3の範囲で今後も増えていきます。 表(4行6列の表)    1   1    2   3   3   3 ------------------------------------------- A | 100  10   20  30  100   10 A | 100  10   20  30  100   10 B | 200  100  100  100  30   20 C | 300  200  50  200  10   30 結果 A1:220 A2: 40 A3:280 B1:300 B2:100 B3:150 C1:500 C2:50 C3:240 よろしくおねがいします。

  • どの関数を使えば良いのか…

    おはようございます。 シート1にその日の出勤簿があります。 (B1より横列が日にち、B1=1、C1=2、A2より下に氏名と当番が書いてあります。A2=田中、A3=当番、A4=佐藤、A5=当番、A6=鈴木、A7=当番…以下複数) B2=○、B3=トイレ、B4.B5=空白、B6=○、B7=風呂…以下複数 C2=…と言ったように1日1日その日の出勤の有無(○か空白)と当番(トイレ、風呂等)を入力してあります。 ここからが本題なのですが、シート2に当番表を作りたいのですが、どんな関数を使えば良いのでしょうか? 具体的には A1に日付 A2から下が当番名(A2=トイレ、A3=風呂…以下複数) B2に式を入れ、上記のシート1の場合だと田中が自動的に入力されると良いのですが… Lookupとかも考えたのですが… 何か関数でよい方法ありますでしょうか? よろしくお願いいたします。

  • エクセル関数

    エクセルで関数を使って、いくつかの条件を満たしたものを「フィルタ」を使ってではなく、関数で数値を出したいと思っています。 例  A    B    C   1 A支店   総務  名前A 2 B支店   営業  名前B 3 A支店   営業  名前C 4 B支店   総務  名前D 5 6 A支店営業 1 分かりにくいとは思いますが、上記の様な表で、B6をもとめたいのです。AND関数やCOUNTIFなどを合わせて使ってみましたが、なかなかうまくいきません。どういった関数を使えば良いですか? よろしくお願いします。

  • エクセル関数で2個条件がある場合のVlookup

    エクセル2002使用です。 2個条件がある場合の表の検索方法(Vlookup?)を考えているのですが、名案が浮かびません。お知恵を貸してください。 表1   A  B  C  D 1  1 2  2 検索1    3  3 4  4 検索2 表2   A  B  C  D 1  2 妻 名前1 2  2 子 名前2 3  4 妻 名前3 4  4 子 名前4 表1のB列に関数での入力式を考えています。 表1のA列の番号と表2のA列の番号が一致し、なおかつ表2のB列が"妻"であるC列の名前を表1のB列に入れたいのです。例えば、上記の表1の検索1は名前1を、検索2は名前3を入力できるようにしたいのでが・・・ Vlookup(A2,表2!A1:C4,3,0) にどのようにネストしたら良いのかわかりません。 方法は、問いませんので複数の条件が合うときの検索方法を考えています。 よろしくお願いします。

  • エクセルの関数をお教えください。

    エクセルの関数をお教えください。   1 2 3 あ A B C い D E F う G H I 上記のような、元表があり、 あ・1 → A う・3 → I  と、選ぶことが出来る関数を教えてください。 よろしくお願いいたします。

  • エクセル:複数の検索結果を表示するには?

    エクセルで下記のようなシフト表から掃除当番表を作っています。    A   B   C    D     E  1 名前      2/1   2/2    2/3 2 山田  1   10    清掃  3 田中  2   清掃   10    清掃 4 木下  2        清掃   清掃 5 中村  1   清掃        有給 ・ ・ B列には各人の清掃回数がCOUNTIFで入力されます。 ここの表以外のセル(シートは別でも同じでも可)に清掃の人の名前だけを 日別に抽出して表示するにはどうしたらよいでしょうか? 一日の清掃当番は二名と決まっています。 基本のシフト表は行、列をいじれないので、表の範囲以外に表示したいです。 似たような例は検索であったのですが、エクセルを始めてまだ間もなく、 理解力不足もあっていまいち応用がきかないので、よろしくお願いします。

  • エクセル関数 抽出について

    例えとして、毎日20名の中から掃除当番(1床掃除、2窓拭き、3トイレ掃除)3名を選ばなければなりません。前回1床掃除をしたら今回の当番日には2窓拭き、次回当番になった日は3トイレ掃除と、20人がなるべく平等になるよう一月分の予定表を毎月掲示しているのですが関数を使ってうまく処理出来ないでしょうか。

専門家に質問してみよう