EXCELでセルに文字の略称を表示する関数を作成したい

このQ&Aのポイント
  • EXCEL初心者が、シート1とシート2のセルに入力された文字の略称を表示する関数を作成したい
  • シート1のA1~G1には赤・青・黄・緑・茶などの値が入力され、その一つをシート2の指定のセルに表示させたい
  • 範囲内で条件に合致する値がない場合は、シート2のセルを空欄にし、複数該当する場合はエラーを出したい
回答を見る
  • ベストアンサー

こんな関数つくれますか?

EXCELはやっと初心者を脱したかな、という感じです。 EXCELで出来た表に手を加えたいのですが、こんな関数作れるのでしょうか? シート1と2があります。2の中のあるセルに、シート1のA1~G1に入力された文字の略称を表示させたいのです。ただしA1~A10には、赤・青・黄・緑・茶といったように5つくらいの値が入力され、その中の一つを選んで表示させたいです。当然あまりの5つくらいのセルは空欄のままです。実際にはA1~N1くらいの範囲で、入力される色の種類も10以上、そのなかで6つくらいが入力される中で条件にあった一つを選び出させたいです。該当する値がないときはシート2のセルは空欄にしたいですし、できれば該当データが複数ある時はエラーを出させたいのです。 「VLOOKUP」なる関数も発見したのですが、難しくてよくわかりません。どうかお知恵を。

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

  • ベストアンサー
  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.3

こんにちは 私も数時間頭を悩ませていた一人です。 補足の後もっと考えてしまいましたが。 補足文中でもところどころ項目の始まりのセルや、データが列方向なのか行方向なのかが抜けていて解読に苦労しました。 こういう表でよろしいのでしょうか? (シート1,2とも左上のセルがA1になります。CSVで読みこんで正確な配置を確認してください。) シート1 ===========   ,  ,英 ,英 ,数 ,数 ,国 ,国 ,理 ,理 ,社 ,社    ,  ,許斐,尾田,岸本,澤井,高橋,鈴木,島袋,冨樫,武井,小畑 月 ,1 ,1A英,3B英,2A数,__,3A国,__,__,1B理,__,2B社 月 ,2 ,__,2B英,1A数,3B数,2A国,__,3A理,__,__,1B社 月 ,3 ,__,1B英,__,2B数,1A国,3B国,2A理,__,3A社,__ 月 ,4 ,3A英,__,__,1B数,__,2B国,1A理,3B理,2A社, 火 ,1 ,3A英,__,__,1B数,__,2B国,1A理,3B理,2A社, 火 ,2 ,__,1B英,__,2B数,1A国,3B国,2A理,__,3A社,__ 火 ,3 ,__,2B英,1A数,3B数,2A国,__,3A理,__,__,1B社 火 ,4 ,1A英,3B英,2A数,__,3A国,__,__,1B理,__,2B社 水 ,1        (これ以降省略) 水 ,2  シート2 (火曜1時間目1A教室、火曜2時間目2B教室が変更) ================   , ,1 ,1 ,2 ,2 ,3 ,3 ,4 ,4  月 ,1A,1A英,  ,1A数,  ,1A国,  ,1A理, 月 ,1B,1B理,  ,1B社,  ,1B英,  ,1B数, 月 ,2A,2A数,  ,2A国,  ,2A理,  ,2A社, 月 ,2B,2B社,  ,2B英,  ,2B数,  ,2B国, 月 ,3A,3A国,  ,3A理,  ,3A社,  ,3A英, 月 ,3B,3B英,  ,3B数,  ,3B国,  ,3B理, 火 ,1A,1A理,社会,1A国,  ,1A数,  ,1A英, 火 ,1B,1B数,  ,1B英,  ,1B社,  ,1B理, 火 ,2A,2A社,  ,2A理,  ,2A国,  ,2A数, 火 ,2B,2B国,  ,2B数,理科,2B英,  ,2B社, 火 ,3A,3A英,  ,3A社,  ,3A理,  ,3A国, 火 ,3B,3B理,  ,3B国,  ,3B数,  ,3B英, あっているという前提で以下、力技回答です。 シート1の名前を"1"にします。 シート2のL,N,P,R列をそれぞれ1,2,3,4時間目の途中計算に使います。 L1,N1,P1,R1にそれぞれ、1,2,3,4を入力、時間のラベル兼演算用に使用します。 L2に次の無駄に長い?式を入力、必要なだけ下方向にコピーします。 =INDEX(OFFSET('1'!$C$2,L$1+(ROW()-1-MOD(ROW()-1,7))/7*4,0,1,10),MATCH($B2&"*",OFFSET('1'!$C$2,L$1+(ROW()-1-MOD(ROW()-1,7))/7*4,0,1,10),0)) N,P,R列の2行目以降はL列のコピーでOKです。 D2に次の長い式を入力、必要なだけ下方向にコピーします。 =IF(L2=C2,"  ",RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(L2,"英","英語"),"数","数学"),"国","国語"),"理","理科"),"社","社会"),2)) F,H,J列の2行目以降はD列のコピーでOKです。 注意 1.セル参照の雨嵐なので、例に挙げたアドレスからずれる可能性があるときは、細心の注意を払って式を修正してください。特にROW()を使用しているため、行がずれるといちころです。 2.MATCH()は、最初に見つかったセルしか返さないので、シート1で教室がダブルブッキングしていてもエラーを返しません。 3.私ことRaistlinは、この回答を運用した結果について完全な責任はもてません。自己責任でお願いします。 提案 >それらがシート2の月1覧左にも入力されています。(ここは変わることはないので手入力です) もし、シート1で時間割をアレンジした結果をシート2に転記するという手順であれば、はじめにC,E,G,I列にL,N,P,R列をコピーすると早いのでは? これで外してたらどうしよう・・・。

FRO-SK
質問者

お礼

すみません、お礼遅れました。メール届かなかったもので。 まだ試していないのですが、前提はあっているので試してみたいと思います。 皆さんありがとうございました。

その他の回答 (2)

  • paku_i
  • ベストアンサー率38% (19/49)
回答No.2

PANCHOさんと同意見です。 昨日の夜からず~っと考えていますが、やはり意味が良くわかりません。 私はEXCELの関数が比較的得意なので、答えられるようでしたら答えたいと考えております。 補足などがメールで届くように私も細く要求させていただきます。

FRO-SK
質問者

補足

すみませんでした。自分の余計なたとえが、お二人を悩ませてしまったようです。でも、結構複雑なんです… 実は、時間割表を作りたいのです。シート1のA列3から、月曜日~金曜日までの日付があり、さらにB列には各曜日とも1~4時間目まで入力されています。各曜日とも4セル分ずつになります。また1行目には科目名が5つ(英数国理社)、2行目には担当者名が10名分入っています。1科目2名(2セル、氏名は適当にしてください)です。1時間に行われる講義は6つ(1A/1B/2A/2B/3A/3B教室において)ですので、10名中6名の覧が常に埋まります。6名の覧に入る文字は、2B社、3A国などです。各教科2名いますが、左側の人がA教室担当、右がBです。 シート2は、教室ごとの時間割です。タテに1A~3B、ヨコに1時間目~4時間目(各2セル分)、それが一日分ですから、その表が月~金の分5つあります。ちなみに各時間2セル作ってあるのは、左に既定の基本時間割、右には変更があった場合の科目名が入力されます。この変更覧セルに関数を入力したいのです。 シート1の月1時間目(C3~L3)には基本時間割の6講義が入力してあります(例えば1A国、1B社、2A社、2B英、3A理、3A英など)。それらがシート2の月1覧左にも入力されています。(ここは変わることはないので手入力です)ここで、1B社の担当者が休んだ場合、シート1の月1覧では1B社を消去し、1B数などに振り替えます。それを自動的にシート2の月曜表・1B1時間目右セルに表示させたいのです。しかも(わがまま行ってスミマセン)シート2に表示された時点で「社会」という文字にしたい(これで充分なので)のです。 その関数をオートフィルできるようなものにしないと入力が大変そうです。長い補足で恐縮ですが、是非よいお知恵をいただきたいと思っています。

  • pancho
  • ベストアンサー率35% (302/848)
回答No.1

申し訳ありませんが、何回読んでも質問の内容が理解できません。 もう一度、シート1には「どのくらいの範囲に、どんな値が設定されているのか」、シート2には「何がどこに入力され、それを元にどこに値を持ってきたいのか」、「シート2に入力された値と、シート1のどの値をどう比較して選択するのか」などを整理して補足してください。 具体的な例が書ければ、もっと参考になります。(多分、Vlookupで出来そうですが ...。) 以上。

関連するQ&A

  • エクセルで空欄を探して入力する関数は?

    エクセルでシート2のどのセルに入力してもその入力した値がシート1上でA1からA2・・・と順にもし、A1が空欄でなければ空欄の次のセルに入力する、という風な関数、方法を教えてください。

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

    (1)セルAの値を他シートから検索 (2)セルAが空欄なら空欄を返す (3)セルAが空欄でなければ、その検索したセルの値を返す (4)検索したセルが空欄であればBを返す =IF(ISNA(VLOOKUP(A1,他シート!$B$4:$G$501,2,0)),"",IF(VLOOKUP(A1,他シート!$B$4:$G$501,2,0)="","B",VLOOKUP(A1,前年度成績!$B$4:$G$501,2,0))) という風にしたくて、上記の式を書きましたが、(4)の検索したセルが空欄であってもBが表示されません。 どこを直せば良いか、教えてください。

  • エクセル関数について

    エクセルの関数についてなのですが、例えば「セルA3」に「セルB2」の値を表示させるには「=(B2)」と「セルA3」に表示させてます。別のSheetの値も表示できるのでしょうか?例えば「Sheet1.Range("A3")」の値をSheet2のA1に表示させたい場合Sheet2のA1にはどのような関数を入力していけばよいのでしょうか?VBAは使わずに表示したいのですが。関数はまだほとんど使ったことがないので分かる人いたら教えてください。よろしくお願いします。

  • VLOOKUP関数の結果セルの右下のセルを表示したい

    VLOOKUP関数について、質問させてください。 現在使っているエクセルのブックのセルA1にVLOOKUP関数を使用し、そのVLOOKUPの「範囲」の部分に、別のブックの範囲を入力しました。 そしてその別ブックの中の、VLOOKUPの検索値に該当するセル(ここでは※とします)の値が、現在使っているブックのセルA1に表れるところまでは出来ました。 しかし、今度は現在のブックのセルA3に、別ブックの※セルを基準に、右方向に1つ・下方向に1つ移動したセルの値が自動的に表示されるような関数を出さなくてはならず、OFFSET関数やADDRESS関数など、色々試してみたのですが分かりません。 遅い時間に申し訳ありませんが、関数にお詳しい方は、どうか知恵をお貸しください。 よろしくお願いします。

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • Excelの関数について教えてください。

    Excelの関数について教えてください。 シート1に顧客表があります。 そこから検索をかけてシート2に該当する顧客を表示させたいです。 検索項目が一つならばVLOOKUPなどを使えばいいのですが、 検索に必要な項目が3つあります。 例えば   A B C D… 1 1 1 1 企業A 2 1 1 3 企業B 3 1 2 1 企業C のような感じで1000くらいのデータが並んでいます。 シート2にて   A B C D 1 1 1 1 企業A 2 それぞれのセルに1-1-1と入力するとD1に『企業A』と表示させ、 1-1-3と入力すれば『企業B』というようにA1~C3に入力する数値によりD1の表示を変えていきたいです。 そして該当がなければ『該当無し』と表示したいです。 この場合の関数は何を用いてどのような式を作ればいいのでしょうか? 関数に詳しい方、ご協力お願いいたします。

  • ISNA関数で空欄と「0」が表示される

    VLOOKup関数で#N/Aを表示させないために、ISNA関数を使用しているのですが、セルによって関数の結果が空欄のところと「0」を表示されるところが出来てしまいます。組み合わせている関数はセルの番号が違うぐらいでどうして表示される結果が違うのかわかりません。 どなたかわかる方ご教授願います。 組み合わせている関数は =IF(ISNA(VLOOKUP(G22,sheet2!$I$5:$J$122,2,0)=""),"",VLOOKUP(G22,sheet2!$I$5:$J$122,2,0)) です。 よろしくお願いします。

  • 関数VLOOKUP IFERRORについて教えてください。

    関数VLOOKUP IFERRORについて教えてください。 セル(A1)でドロップダウンリストから会場名を選択。 SHEET2から住所・郵便番号・電話番号等を自動展開させています。 =IFERROR(VLOOKUP(B4,SHEET2!A:E,2,FALSE),"")など SHEET2に該当データがない場合は、SHEET1のセル1に手入力をしたいのですが 入力値が正しくない・・とエラーで返されてしまします。 どうしたら手入力できるようになりますか? ドロップダウンリストの指定がいけないのでしょうか? また手入力したとき、SHEET1のセルA2~A5にも手入力をしたいのですが (これは一応入力できるのですが) 入力と同時に、A2~A5の関数指定が消えてしまいます。 関数を保護したまま入力値を入れる方法はあるのでしょうか? ご回答いただけますようお願いいたします。 エクセル2007で作業中です。

  • excelのvlookup関数で値ではなくセルの位置を返せますか?

    どなたかお詳しいかた教えていただけますでしょうか? excelのvlookup関数は通常該当するセルの値を返すと思うのですが、そのセルの位置(A4とか)を返す方法はありますか? 例えば、以下のようなEXCELのシートがあったとします。 =VLOOKUP("いちご",A1:B4,2,0)とすると、”200円”と表示されると思うのですが、このセルの位置(この場合は"B4")を求める方法ははありますか?   A  B 1りんご 100円 2みかん  80円 3バナナ 150円 4いちご 200円 お詳しい方よろしくお願い致します。 m(__)m

  • vlookup関数について

    vlookupの関数でお尋ねします。 vlookupで検索したセルが空欄の際に、値を返すと作成した表のセルの部分には「0」が表示されます。 「0」を表示させず、空欄にしたいのですが、方法が分かりません。 もしくは、印刷時のみ「エラー」のときと同じように印刷されない方法があるなら、それでも構いません。 よろしくお願いいたします。

専門家に質問してみよう