• 締切済み

エクセルで質問があります。

エクセルで質問があります。 大文字と小文字で区別されている以下のデータを まとめたいのですがどのような関数を使用すれば いいのでしょう。 AAa  11 aaa  20 Aaa  30 aaa  11, 20, 30 aaaの部分はまとまってくれさえすれば AAa  11, 20, 30 Aaa  11, 20, 30 でも構いません。 よろしくお願いします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 回答番号:ANo.2、3です。  Excelの関数とリストの並べ替え機能も併用する、半自動的な方法で、ANo.3よりも簡単、且つ早く計算出来る数式を考えつきました。  まず、Sheet3のB2セルに =IF(Sheet1!$A1="","",LOWER(Sheet1!$A1)) という数式を入力し、次にSheet3のA2セルに =IF(ROWS($1:1)=1,1,IF(OR($B2="",COUNTIF($B$1:$B1,"="&$B2)>0),"",COUNT($A$1:$A1)+1)) という数式を入力し、次にSheet3のC2セルに =IF(Sheet1!$B1="","",Sheet1!$B1&IF($B2=$B3,","&C3,"")) という数式を入力して下さい。  次に、Sheet3のA2~C2の範囲をコピーして、Sheet3の3行目以下に(Sheet1に入力する予定の単語の数以上の行数になるまで)貼り付けて下さい。  続いて、Sheet2のA2セルに =IF(ROWS($1:1)>COUNTIF(Sheet3!$A:$A),"",VLOOKUP(ROWS($1:1),Sheet3!$A:$C,COLUNS($A:B))) という数式を入力して下さい。  次に、Sheet2のA2セルをコピーして、A列の2行目から、B列(A列ではない)の単語の種類数以上の行数になるまでの範囲にかけて、貼り付けて下さい。  ここまでで、関数の入力は終了で、引き続いてSheet1のA列に単語を、Sheet1のB列にページ番号を、入力して下さい。  そして、単語とページ番号を全て入力し終えてから、Sheet1のA列中で単語が入力されているセルの内、何れか一つをクリックして下さい。  次に メニューの[データ]ボタンをクリック   ↓ 現れた選択肢中の[並べ替え]をクリック   ↓ 現れた「並べ替え」ウィンドウの中の、「最優先されるキー」の欄をアルファベットにして、その右側にある「昇順」と記されている箇所にチェックを入れる   ↓ 「2番目に優先されるキー」の欄を数字にして、その右側にある「昇順」と記されている箇所にチェックを入れる   ↓ [OK]ボタンをクリック  すると、単語の列がスペル順に並べ替えられ、それに合わせてページ番号の列も入れ替えられ、同じスペルの単語のページ番号同士であれば、番号順に並べ替えられます。  その後で、Sheet2を開けば、重複無しの単語がスペル順にA列に並び、B列のセルにページ番号が小さい順番に並びます。  尚、この関数の場合は、ANo.3のものとは異なり、同じ単語のページ番号同士が昇順に並んでいない場合には、Sheet2のB列のセルの表示も、ページ番号順ではなくなりますが、その点は並べ替え操作のやり方でカバー出来ます。  又、単語を追加する場合には、追加の単語とページ番号を全て入力してから、再度、並べ替えを行って下さい。  それから、関数を使う方法が、フィルター等を使った方法と比べて優れている点は、少ない手動操作の回数で、ほぼ完成した状態のリストが得られるという点だと思います。

全文を見る
すると、全ての回答が全文表示されます。
noname#164823
noname#164823
回答No.4

関数を使わないで、簡単にできる方法です。 「フィルタ」を使い、抽出された数字を別シートにコピーする方法で いかがでしょう。 まず、 名称  ページ Apple 120 apple 150 beer 30 Beer 60 BEER 130 egg 10 EGG 130 のように、 1.セルの最上に「列見出し」を入れて下さい。 2.全体の文字を半角か全角に統一して下さい。  もし、混じっている場合、補足して下さい。関数で一発で変換できます。  大文字・小文字は混在OKです。 なるべく、空白セルを作らないで下さい。 3.この表を「リスト」といいます。作業を開始するとき、リスト内のどこでも  いいので、1セルだけクリックします。これで、4.からリスト全体が選択されます。 4.ツールボタンのページ数のどれか1つのセルを選択し、「昇順」を押して下さい。 5.次に「データ」「フィルタ」「オートフィルタ」をクリック。 6.「列見出し」の右に▼が出ます(フィルタモードという)。 7.▼をクリックし、「オプション」を選択。 8.「オートフィルタオプション」のダイアログが出るので、  「タイトル」欄に「a*」と半角で入力し(大文字・小文字無関係)、  右側のボックスから「と等しい」を選択し、OK。  「*」を入れる事により、aで始まるデータは全て抽出されます。 9.あらかじめシート2にでも[Apple]など、縦方向に表題を入力しておき、  上の操作でAppleから抽出された数字を全て選択し、「コピー」→シート2の  Appleの右隣のセルを1つ選択し「形式を選択して貼り付け」→下にある  「行列を入れ替える」にチェックを入れて「OK」。  これで、横方向に数字が並びます。 10.7.を繰り返し、次はBeerを同様に抽出、コピーします。 フィルタモードは5,の手順で「オートフィルタ」のチェックを 外せば解除できます。

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

 回答番号:ANo.2です。  関数だけで自動計算するのではなく、Excelのリストの並べ替え機能も併用する、半自動的な方法ですが、それでも宜しいでしょうか。  今仮に、Sheet1のA列に単語、B列にページ番号が並んでいる場合、Sheet3を作業用シートとして使用して、Sheet2のA列に単語リストが重複無しに表示され、同じ行のB列から右側のセルに、各単語のページ番号が、小さい数順に表示されるものとします。  まず、Sheet3のA2セルに =IF(Sheet1!$A1="","",Sheet1!$A1) という数式を入力し、次にSheet3のB2セルに =IF(Sheet1!$B1="","",Sheet1!$B1) という数式を入力し、次にSheet3のC2セルに =IF(ROWS($1:1)=1,1,IF(OR($A2="",COUNTIF($A$1:$A1,"="&$A2)>0),"",COUNT($C$1:$C1)+1)) という数式を入力し、次にSheet3のD2セルに =LOWER($A2) という数式を入力し、次にSheet3のE2セルに =IF($A2="","",RANK($B2,OFFSET($B$1,SUMPRODUCT(($C$2:$C$65536<>"")*($A$2:$A$65536=$A2)*(ROW(E$2:E$65536)))-1,,COUNTIF($A$2:$A$65536,"="&$A2)),1)) という数式を入力して下さい。  次に、Sheet3のA2~E2の範囲をコピーして、Sheet3の3行目以下に(Sheet1に入力する予定の単語の数以上の行数になるまで)貼り付けて下さい。  続いて、Sheet2のA2セルに =IF(ROWS($1:1)>COUNTIF(Sheet3!$C:$C),"",VLOOKUP(ROWS($1:1),Sheet3!$C:$D,2)) という数式を入力し、次にSheet2のB2セルに =IF(OR($A2="",COLUMNS($A:A)>COUNTIF(Sheet3!$A:$A,"="&$A2)),"",SUMPRODUCT((Sheet3!$B$2:$B$65536),(Sheet3!$A$2:$A$65536=$A2)*(Sheet3!E$2:E$65536=COLUMNS($A:A)))) という数式を入力して下さい。  次に、Sheet2のB2セルをコピーして、単語で最も多く重複しているものがリスト中に登場する回数を上回るのに充分な個数の、Sheet2のC2セルから右側にあるセルに貼り付けて下さい。(例えば仮に、リスト中に「aaa」という単語が7個あるのが最多で、その他の単語は7個以下しか登場していない場合には、C3~C8の範囲に貼り付けて下さい)  次に、Sheet2の2行目中で数式が入力されているセルの全てを範囲コピーして、Sheet2の3行目以下に(Sheet1に入力する予定の単語の種類の数以上の行数になるまで)貼り付けて下さい。  ここまでで、関数の入力は終了で、引き続いてSheet1のA列に単語を、Sheet1のB列にページ番号を、入力して下さい。  そして、単語とページ番号を全て入力し終えてから、Sheet1のA列中で単語が入力されているセルの内、何れか一つをクリックして下さい。  次に、[昇順で並べ替え]ボタンをクリックして下さい。  もし、[昇順で並べ替え]ボタンが見つからない場合には、代わりにメニューの[データ]ボタンをクリックして、現れた選択肢中の[並べ替え]をクリックすると現れる、「並べ替え」ウィンドウの中の、最優先されるキーの欄をアルファベットにしてから、その右側にある「昇順」と記されている箇所にチェックを入れた後、[OK]ボタンをクリックして下さい。  すると、A列が単語のスペル順に並べ替えられ、それに合わせてB列も(数字の順番とは関わりなく)並べ替えられます。  その後で、Sheet2を開けば、重複無しの単語がスペル順にA列に並び、その右側のセルに左から順番に、ページ番号が小さい順に並びます。  尚、この関数の場合は、Sheet1に単語のスペルのみが昇順で並んでいれば良く、同じ単語のページ番号同士に関しては、必ずしも昇順に並んでいる必要はありません。  又、単語を追加する場合には、追加の単語とページ番号を全て入力してから、再度、並べ替えを行って下さい。  それと、入力する度に自動計算が行われると時間を要しますから、計算方法の設定を手動に切り替えてから、単語を入力するのも一つの手だと思います。

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

 Excelのリストの並べ替え機能を利用されると良いと思います。  まず、単語が入力されているセルの内、何れか一つをクリック   ↓ メニューの[データ]ボタンをクリック   ↓ 現れた選択肢中の[並べ替え]をクリック   ↓ 現れた「並べ替え」ウィンドウの中の、「最優先されるキー」の欄を「A」にして、その右側にある「昇順」と記されている箇所にチェックを入れる   ↓ 「2番目に優先されるキー」の欄を数字にして、その右側にある「昇順」と記されている箇所にチェックを入れる   ↓ [OK]ボタンをクリック  すると、単語の列がスペル順に並べ替えられ、それに合わせてページ番号の列も入れ替えられ、同じスペルの単語のページ番号同士であれば、番号順に並べ替えられます。  尚、単語のスペルのみに従って並べ替えて、同じスペルの単語のページ番号同士は、番号順にはしなくとも良い場合には、単語が入力されているセルをクリックしてから、「標準」バー中の[昇順で並べ替え]ボタンをクリックする、という方法もあります。  それから、重複した単語を一つにまとめて、その右側にページ番号を順番に表示させる方法も、この後で回答致します。

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

う~ん、情報不足です。 データには、AAa、aaa、Aaa以外に、bbbやcccはないのですか? なければ、ここはキー入力した方が早いですよね。 11, 20, 30 この並べ方は、「,」が必要なのですか? それとも、1つのセルに、数値1つが入って、「,」はいらないのですか? これでしたら、縦横変換で出来ます。

gunner09
質問者

補足

説明不足ですいません。 用途としては索引に使用したいのですが、 単語の大文字と小文字で分かれてしまっているので 一つにまとめたいのです。 同じスペルの単語を検索してページ番号をカンマ区切りで まとめる感じです。 ページ番号は1つのセルに入っていてもそうでなくても 構いません。 Apple 120 apple 150 beer 30 Beer 60 BEER 130 egg 10 EGG 130     ↓ apple 120,150 beer 30, 60,130 egg 10,130 このようなイメージです。 よろしくお願いします。

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

関連するQ&A

  • 一定の情報だけを抜き出すエクセル関数について

    質問させてください。 http://aaa/bbb/から aaaと http://*/の部分だけ 抜き出したいと考えています。 エクセル関数を使いたいのですが わかりません。 知っていらっしゃかたいらっしゃいましたら 教えてください。 よろしくお願い致します。

  • Excelの関数を使用したデータ抽出

    Excelの関数を使用したデータ抽出 Excelの関数を使用して以下のようなデータ抽出をすることは可能でしょうか? Aに以下の基本データがあります。 --------------- 型番 商品 価格 受注 出荷 仕入 No AAA りんご 100 1/1 1/1 80 001 AAA りんご 120 1/3 1/3 80 002 BBB みかん 200 1/1 1/1 90 003 BBB みかん 210 1/5 1/5 90 004 BBB みかん 220 1/5 1/5 90 005 --------------- Bに型番のみのデータがあります。 --------------- 型番 商品 価格 受注 出荷 仕入 No AAA BBB BBB CCC AAA AAA AAA CCC BBB BBB BBB --------------- Aから抽出したデータをBに反映させたいです。 以下のような形です。 --------------- 型番 商品 価格 受注 出荷 仕入 No AAA りんご 100 1/1 1/1 80 001 BBB みかん 200 1/1 1/1 90 003 BBB みかん 210 1/5 1/5 90 004 CCC ぶどう AAA りんご 120 1/3 1/3 80 002 AAA りんご AAA りんご CCC ぶどう BBB みかん 220 1/5 1/5 90 005 BBB みかん BBB みかん --------------- 宜しくお願い致します。

  • エクセルについての質問です。

    エクセルについての質問です。 Aとういうブックから(以後A)Bというブック(以後B)にデータを吸出し、Aに入力されているデータのうち数個をBに集めた際、 Bに吸い出したデータの中から、セルに入力されたデータの右から3個の文字がこの文字だったらシート2へとか左から幾つめがこの文字だったらシート3へとかって出来るのでしょうか・・・?分かりづらいかもですが例を挙げさせて頂きます・・・ 例) ブックA←毎日データを入力(フォーマット等が専用で有り、会社として使用方法が決められているブック) ブックB←Aに入力されたデータのうち幾つかを集め他店と共有して情報を読み取る Aのシート1に入力されているデータ ↓ Bのシート1へ='[ブックA]シート1'!$A1等を使用しデータの吸出し A B C D E F 1 日付 氏名 伝票No. 品番 品名 数量 2 10/1 山本 001 123 aaa a 2 3 10/2 佐藤 002 122 aaa b 1 4 10/3 加藤 003 213 a ccc 1 ←AからBのシート1に集められるデータの内容 5 10/4 田中 004 312 a ddd 1 (投稿の仕様上?でスペースが無くなって行列が合わなくなってますが・・・) : : : : ここからE列に入力されたデータを判別してシート2以降に振り分けをしていきたいのですが・・・ aaaという商品にはaaa a、aaa b、aaa cがあり、aという商品にはa ccc、a dddとある場合、 E列に入力されていくデータの前後の文字列を判別して、D、E、Fをシート2以降に振り分けていくことは可能なのでしょうか・・・? E列に入力された文字列の前3つがaaaだった場合、同一行のD、E、Fをシート2へとか、 E列に入力された文字列の後ろ3つがcccだった場合、同一行のD、E、Fをシート3へ等の 振り分けをしたいのですが・・・・ 質問の仕方が悪すぎてとても分かりづらいですが、これかなって思われる方・・・ご回答お願いします・・・ 補足 品名に半角スペースありだったり半角スペースなしで10文字くらいの文字だったりとランダムです・・・ LEFT、MID、RIGHT関数を使用しようと思ったのですが上手くいかずで・・・

  • Excelで特定の文字を抜き出す

    Excelで関数を使い、特定の文字列を自動で抜き出し、二つの列に分けたいです。 あいうえお0X =AAA= かきくけこ00 =BBBB= さしすせそ000 =CCC= たちつてと0 =DD= なにぬねの00X =EEE= はひふへほ000 =F= 上記のようにA1~A6に、文字数も文字もバラバラのセル列があったとします。 これを以下のように分解したいです。 例: A1:あいうえお0X =AAA= A2:かきくけこ00 =BBBB=    ↓ 「B1:あいうえお0X」と「C1:AAA」 「B2:かきくけこ00」と「C2:BBBB」 関数を教えて下さい。

  • エクセルデータの改列の方法について

    エクセルデータの改列の方法について エクセルデータでA列のセルに以下のように「aaa」と「スペース」で区切られた数列のグループを、 ___A__B__ 1|aaa|1 2|465|2 3|231|3 4|124|4 5|221|5 6|・ 7|・  ・(数は不明) ・ 10|3|84 11|スペース 12|aaa|1 13|556|2 14|245|3 15|111|4 16|232|5 17|・ 18|・ ・(数は不明) ・ 28|2|78 29|スペース 30|aaa|1 31|255|2 ・ ・ 以下のようにaaaを頭とする複数の列に分割するにはどうしたらいいでしょうか。 ___A__B__C__D・・・ 1|aaa|__|aaa|__・・・ 2|465|1|556|1・・ 3|231|2|245|2・・ 4|124|3|111|3・・ 5|221|4|232|4・・・ 6| ・ 7| ・ 各ファイル50ブロックの数字の列があり、更にファイルも100以上ありますので、 贅沢ですが、できれば作業が少ない方が。。と思っています。 どなたか教えていただけたら幸いです。 よろしくお願いします。

  • エクセル 関数

    エクセルの関数について教えて下さい。 例えば、 項目  内容  時間 AAA 123 5.0 BBB 456 2.0 CCC 789 5.0 AAA 123 8.0 CCC 789 1.5 とゆう表があったとして、ここから項目のAAAはTOTAL何時間かかった のかを関数で出したいんですが、どんな関数をつかえばいいですか? 1000行くらいをまとめなくてはいけなくて・・・ それぞれ、どのくらい時間がかかったか知りたいです。 申し訳ないですが、分かる方教えてください。 よろしくおねがいします。

  • EXCELのcountif関数での大文字と小文字は区別できるのでしょうか

    EXCELのcountif関数での大文字と小文字を別々にカウントする方法をご存知の方がいましたら教えて下さい。 入力値 セルB2 aaa セルC2 aAa =COUNTIF(B2:C2,"aaa")とすると 2  が返ってきます。 aaaのみカウントしてaAaはカウントしないようにしたいのです。 もしかしたらcountifの制限なのでしょうか?そうだとしたら他の方法が思いつきません。ご存知の方みえましたら、教えて下さい。お願いします。

  • エクセルVBAハイパーリンクの自動設定について

    はじめて質問させていただきます。 エクセルVBAハイパーリンクの自動設定についてですが A列にAAA、BBB、CCC、DDD・・・という文字列が入っています。 D:\dataというフォルダーにAAA-01、BBB-02、CCC-01、DDD-05 という名前のファイル(.DOC)が入っています。 A列の文字列にハイパーリンクを貼りたいのですがどうしたらよいでしょうか? AAAの文字にAAA-01.docのハイパーリンクを自動で貼る。 -01はファイルのバージョンで更新されたら-02、-03と変わって いくため頭から3文字があえばリンクを貼るようにしたいのです。 よろしくお願いします。

  • エクセルのファイルが複数開いてしまう

    エクセルのファイルを開くと何故か複数開いてしまいます。 詳しい状況は、ファイル名 aaa というデータが保存されています。 この aaa のファイルを開くと、何故か aaa1 と aaa2 と2つのデータが勝手に作成されてしまいます。 内容は一緒のようですが、今までにない事例なので早く解消したいのですがどうしたらいいですか? よろしくお願いします。

  • Excelで質問です。

    VLOOKUPでアルファベットの大文字小文字を区別する方法はないでしょうか? A列    B列 AAA    123 aaa    456 とあるときに、普通のVLOOKUPでは判別してくれません。 どうしたら良い方法がありますか?

このQ&Aのポイント
  • コロナワクチン後に発熱した場合、解熱剤の使用は効果があるのか?
  • 2回目のファイザー接種後にカロナールを使用したが、熱は下がったものの、効果的な解熱剤について教えてほしい
  • 市販のイブプロフェンやロキソニンは効果的な解熱剤として利用できるのか?また、他にオススメの解熱剤はあるのか?
回答を見る

専門家に質問してみよう