• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じ行または列で同一文字列を検索・順位をつけて表示するには?)

同じ行または列で同一文字列を検索・順位をつけて表示する方法

このQ&Aのポイント
  • Excel2003を使用して3交代制の職場で勤務表を作成しています。同じ行または列で同一文字列を検索・順位をつけて表示する方法を教えてください。
  • 作成した関数では最初の一人しか認識せず、困っています。同一作業の担当者を別欄に抜き出して勤務表を見やすくしたいです。
  • 関数を使って同じ行または列で同一文字列を検索・順位をつけて表示する方法を教えてください。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

この掲示板のシステム(レイアウト)を勘違いされているようです。 一番下の回答(回答番号No1)は最も古い回答で、一番上のこの回答(No5)が最新の回答です。 >MATCH~をご指摘の様に改変したパターン =VLOOKUP(SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52),""),ROW(A1)) では MATCH~を使用した場合から下に3人目の従業員氏名が  表示されるようです。 したがって、No1に対する返答ですが、No2を参考にしてください。 もちろん、G列以外のデータを参照できるようにするには、$G$4:$G$52は複合参照(G$4:G$52)の数式にして下さい。 この数式で同じ値が3つの場合もオートフィルだけで表示できますが、2つしかないと3つ目のセルはエラーとなります。 これを表示したくないなら、COUNTIF関数でそのデータの数をカウントし、その数字よりROW(A1)の部分が、大きい範囲は空白を表示する数式にしてください。、

ikuchan250
質問者

お礼

明日、宿直勤務なので教えて頂いた内容を十分時間をかけて確認したいとおもいます。 なんとなく私の希望する答え近づいているイメージがしてました。 そうそう、コメントを書く欄が間違っていたみたいですみません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>おっしゃる通り、基本は2人作業です。業務13は2人、業務5も2人、業務7も2人、業務9は2~3人が多いです。 私の質問に回答してないように思いますが、配列数式にして2名分表示できたのでしょうか? ひとまず提示した数式は、共同作業の人数によって自動的に人数分だけ表示できるようになっていません(エラー処理をしていません)が、複雑な数式にすれば、自動的に該当者がない場合は空白表示などにすることもできます。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>基本作業が二人作業ですので7,9,13等は二人表示したいのです。(場合によっては3人) 例示のデータでは、9の場合は1人に見えますが、2人なのでしょうか? また、3人の場合は3名分表示させるのでしょうか? >単純に  =SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52)-3,""),ROW(A1)) と入れただけでは#VALUE! とエラー表示が出てしまいました。 すでに回答したように、配列数式ですので、数式を入力後、CtrlキーとShiftキーを押しながらEnterキーを押してください(数式が{と}で挟まれます)。

ikuchan250
質問者

補足

>例示のデータでは、9の場合は1人に見えますが、2人なのでしょうか? >また、3人の場合は3名分表示させるのでしょうか? おっしゃる通り、基本は2人作業です。業務13は2人、業務5も2人、業務7も2人、業務9は2~3人が多いです。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

訂正と補足です。 検索範囲がG4セルから開始しているのですから、このセルが「1」番目になるように、提示した数式を以下のように変更してください。 SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52)-3,""),ROW(A1)) #ところで、浅井、舟木の右の名前はどのように表示した(表示したい)データなのでしょうか? 上記の回答は、例示された数式を修正する場合の回答ですが、条件によってはもっと効率的な操作があるかもしれません。 もし、上記の回答でうまくいかないようであれば、元シートのレイアウトと、まとめたい一覧表のレイアウトをもう少し具体的に例示してください。

ikuchan250
質問者

補足

>ところで、浅井、舟木の右の名前はどのように表示した(表示したい)データなのでしょうか? どのように質問したらよいのかわからず、あのような質問となりました。 Excelは左端 A4 からA4従業員名の連番・B4従業員名(フルネーム)・C4従業員(名字だけ)・D4(1日)~AH(31日)の業務内容となっています。縦方向は従業員名です。 申し遅れましたが、$G$4:$G$52 は 4日目の業務の実データです(A,D,7,13等)。 =VLOOKUP(MATCH(B63,$E$4:$E$52,0),$A$2:$C$52,3) というのは、B63(このセルにはに業務内容を指定します) の業務の内容を、当日の従業員の業務割り当てから 誰が該当するか を知りたいのです。基本作業が二人作業ですので7,9,13等は二人表示したいのです。(場合によっては3人) 単純に  =SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52)-3,""),ROW(A1)) と入れただけでは#VALUE! とエラー表示が出てしまいました。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

現在の数式をそのまま利用するなら、VLOOKUP数式の「MATCH(B62,$G$4:$G$52,0)」の部分を「SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52),""),ROW(A1))」として、数式入力後、Ctrl+Shift+Enterで確定して配列数式にしてください。

ikuchan250
質問者

補足

>「MATCH(B62,$G$4:$G$52,0)」の部分を >「SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52),""),ROW(A1))」として、数式入力後、 >Ctrl+Shift+Enterで確定して配列数式にしてください。 長い間返事が出来ずに申し訳ありませんでした。 まず配列数式という言葉を知らず(初歩的なマニュアル本には載っていない) 勤務の関係や講習会参加でで解答はチェックできたものの返事が出来ない 状態が続いていました。 今少し触っている状態では =VLOOKUP(MATCH(B63,$G$4:$G$52,0),$A$2:$C$52,3) では勤務表に並んだ従業員氏名の何人か割り当てのある勤務13に対し  勤務表の上(最初?)に表示された従業員が表示されます。  勤務表は管理職3名に続いて他の従業員が上からアイウエオ順に表示されています。 MATCH~をご指摘の様に改変したパターン =VLOOKUP(SMALL(IF($G$4:$G$52=$B$62,ROW($G$4:$G$52),""),ROW(A1)) では MATCH~を使用した場合から下に3人目の従業員氏名が  表示されるようです。 残念な事に配列数式が理解できない上に(nikkeiBPで調べて少しわかった) SMALL(IF~  ・・・ROW(A1)) の意味が理解できず悪戦苦闘中です。 もう少し頑張ります。 また少しわかったら報告します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数シートから検索文字がある列を摘出したい

    初心者ですのでお力お貸し下さい。 30sheet以上あるエクセルファイルから、 特定の文字(あるいは数字)が入ったセルを検索し、その特定文字が入った一列を新規sheetへ摘出したいと考えております。 各sheetには下記の様な表が作成されており、1sheetに検索文字は0だったり複数あったりします。 A B C D 1 ◯会社 123 田中 1111 2 ▫️会社 456 佐藤 2222 3 △会社 789 加藤 3333 4 ◯会社 123 田中 4444 (表示がうまくされてなかったらすみません) 上記の様な表から、123(または田中)のみを新規sheetにまとめて表示させたいです。 またsheet毎に田中があったりなかったりしますが、全てのsheetから摘出させたいです。 新規sheetは検索結果のみを表示させて、一つの表にしたいです。 エクセルは2003使用です。 説明が下手で申し訳ありませんが、関数マクロは問いませんので分かり易く教えて頂けると助かります。 よろしくお願いします。

  • 関数を使って列や行を非表示にすることはできますか?

    一覧表からvlookupを使って個人票を作っているのですが、人によっては空白の列や行が多く、間延びしたものになっています。 関数を使って、必要のない列や行を非表示にして印刷しないようにしたいのですが、可能でしょうか?VBAを使えばすぐできるのはわかるのですが、実際に作業する人はVBAはわからないので、関数でできないかと考えています。 何かいいアイデアがあれば、よろしくお願いします。

  • Excel 文字列検索

        A      B      C 1  田中実    田中    田中実 2  石川武          田中康雄 3  中田英人 4  石崎甚平   石川    石川武 5  石川啓子         石川啓子 6  中田康雄 B列にA列の文字列に部分一致する文字列を入力すると C列にその検索結果を表示する様にしたい。 C1=IF(OR($B$2="",$B$2<1),"",VLOOKUP("*"&B2&"*",$A$2:$A$1500,1,FALSE))だと田中や石川のように名前がかぶると 1個しか表示されない。B2にも田中が該当する人を表示させたい。 説明が下手かもしれませんが、知恵を貸してください。よろしくお願いします。

  • A列に同文字がありB列に個数が表示する関数

    A列に同じ文字がありB列に個数が表示される関数ないですか? 事務の仕事をしていえて2万件の中から同じ文字を探してと言われ イメージはこんな感じです。 A列 B列 田中 2 山田 1 田中 2 中村 1 よろしくお願いいたします。

  • エクセル 特定の行を表示させるには…続きです。

    このような質問を立て続けに申し訳ありません。 やってみたのですが、どうしてもSheet2に表示されません。 関数式を入れる際、値などを間違えているのだと思うのですが、 どこが間違えているかわからないので、ご指摘いただければありがたいです。 どうぞよろしくお願いいたします。 画像添付のやり方がわからないので、下記URLに作成中のものを入れました。 これでご指摘をいただけるかわかりませんが、よろしくお願いします。 このような質問を立て続けに申し訳ありません。 やってみたのですが、どうしてもSheet2に表示されません。 関数式を入れる際、値などを間違えているのだと思うのですが、 どこが間違えているかわからないので、ご指摘いただければありがたいです。 どうぞよろしくお願いいたします。 画像添付のやり方がわからないので、下記URLに作成中のものを入れました。 これでご指摘をいただけるかわかりませんが、よろしくお願いします。 http://yahoo.jp/box/PRw0Wx 依頼者=Sheet1、作業シート=Sheet2 となっています。 作業シートのA4セルの関数式を見ていただきたいのですが、 教えていただいたように自分のデータで該当するものを入れてみたんですが… 違うらしく、表示されません>< ちなみに、Sheet1の作業列にはきちんと値が表示されています。 Sheet2のA2に●が入っていますが、ここに海外と入れると、ちゃんと番号が出ます。 依頼者=Sheet1、作業シート=Sheet2 となっています。 作業シートのA4セルの関数式を見ていただきたいのですが、 教えていただいたように自分のデータで該当するものを入れてみたんですが… 違うらしく、表示されません>< ちなみに、Sheet1の作業列にはきちんと値が表示されています。 Sheet2のA2に●が入っていますが、ここに海外と入れると、ちゃんと番号が出ます。

  • 一行に並んだ時間と単価をその行にて合計するには?

    下記のような表を作成しているのですが、例えば田中さんの 単価と時間の2列を合計して11列目に集計するのは、 SUMPRODUCT()で出来ますが、横に並んだ業務ごとの集計を 行なうにはどのようにすればよいのでしょうか? 単純にSUM(B4*C4,D4*E4,F4*G4)でも出ますが、 従業員が50名を越えている為、SUM()が使えません。 また、上下のセルにも他のシートとのリンクにより行挿入による余白が 作れません。 なにか良い関数は無いのでしょうか? A B C D E F G 1  氏名    田中    佐藤    鈴木 2  項目  単価 時間  単価 時間  単価 時間 3  業務1 500  1.5   500     500  1.0 4  業務2 600 2.0     600     600 5  業務3 700 0.5    700 0.5    700 6  業務4 800 1.0   800 1.0     800 4.0 7  業務5 900     900 0.5    900 8  業務6 1000     1000 3.0    1000 9  業務7 1100 2.0   1100 2.0    1100 2.0 10 業務8 1200 1.0    1200 1.0   1200 1.0

  • 列と行での検索

    Excel2000の関数で質問です。 関数やVBAは本に載っているような物を修正して使っているので初歩的な事しかわかってません。 A      B      C     D     E 1     A会社  B会社  C会社  D会社 2 肉     100   200    300    400 3 野菜    100   200    300    400 4 卵     200   200    200    200 5 卵1    100   100    100    100 6 牛乳    300   300    300    300 このような表があるのですが、 A10にA会社 A11に卵 といれると、卵と卵1の合計の300がでてくるような関数はありますか? A列は1文字とは限らず、最大10文字位あります。(あいうえお1など) INDEXとMATCHをつかって卵の200だけは出せたのですが、どうしても合計が出せません。 作った関数は =INDEX(B1:E6,MATCH(A11,A2:A6,0),MATCH(A10,B1:E1,0)) です。よろしくお願いします。

  • 1列について重複している行を除くかつ,他の列の値で抽出する行を変えたい場合

    SQLSeverを使い,SQL文を作成しているのですが, 下記のA列の重複行を取り除くかつ,B列の「5よりも4」,「4よりも1」,「1よりも2」,「2よりも3」(3>2>1>4>5)の行を抽出したいと考えています.下記の表1を抽出した場合,表2が出るようにしたいです. 表1 A B 1 1 1 3 1 3 1 5 2 1 2 2 2 5 表2 A B 1 3 2 2 もしB列が,5>4>3>2>1の順番ならMAXを使って取り出すことはできたのですが,3>2>1>4>5の場合だと,どんなSQL文にすればよいのでしょうか? よろしくお願いします.

  • 検索&順位

    1列 2列 3列 4列 5列 1行  100 120 130 120 100 2行  110 110 130 120 150 3行  111 110 140 120 180 4行  100 110 170 170 170 5行  100 110 170 120 000 上記のように並んでいる数字を、COUNTIF関数で110が幾つ120が幾つあるのか、 カウントします。 その後にLARGE関数で1番多く出現している数字を順番に並べます。 さらに、一番多く出現している数がなんであるのかを、表示したいのですが、 どのようにすれば、よいでしょうか? VLOOKUP関数を使って作業しようとしたのですが、同じ数字が出現している場合に 困っています。 ご教授よろしくお願いします。 また、説明が分かりにくくてすみません。

  • 関数[行の検索?]について

    EXCELでA列に日付入りの表を作成しました。 今日の行を色を変える。他より目立つ様にする。など設定出来る関数ってあるのでしょうか? お分かりになる方どうぞよろしくお願い致します。

専門家に質問してみよう