• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんな関数つくれますか?)

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

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

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

  • ベストアンサー
  • 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