• 締切済み

Excelで文字列のまとめ方

文字列のまとめ方で困っています。お手数ですが教えて下さいm(__)m 下記データがあったとします。 _ __A______B 1_種類___品名 2_調味料_醤油 3_調味料_食塩 4_調味料_胡椒 5_果物___りんご 6_野菜___胡瓜 7_野菜___玉葱 8_果物___バナナ 9_調味料_料理酒 ・ ・ ・ 上記データから下記のようにプルダウンリストにしたいです。 いきなりデータからプルダウンリストにするのが難しいかもしれないので、いったん上記を関数とかで他のセルにまとめさせておき、それをプルダウンリストにする方法でも大丈夫です。 (1)A列データプルダウン 一つ目のプルダウンリストには、A列の同じ文字を省いたもので選択可能にする。 上記例で言うと、調味料、果物、野菜が一つずつリストに表示される。(プルダウンリスト表示は2行目から) (1)B列データプルダウン 二つ目のプルダウンリストには、B列の文字を引っ張って来るが、上記A列データプルダウンで選択した文字と同じ行にある文字のみ選択可能にする。 例えばA列データプルダウンで果物を選んだら、このB列データプルダウンメニューにはりんごとバナナのみがリストに表示される。) 上記例のデータは9行目までですが、もっと多く存在し、A列、B列のデータ種類も他にまだあります。 データでA列の文字は被る事ありますが、B列の文字は被ることありません。 データとプルダウン箇所は可能であればシート分けしたいですが、困難な場合は同じワークシート内でも構いません。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1をデータベースの表としてシート2でプルダウンの付いた入力シートを作成するとします。 シート1のAおよびB列には2行目か下方にお示しのような表が有るとします。そこで初めに作業列を作って対応します。 シート1の例えばC2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(C$1:C1),-4)+10000+IF(COUNTIF(B$2:B2,B2)=1,1,0),IF(COUNTIF(B$2:B2,B2)=1,ROUNDDOWN(INDEX(C$1:C1,MATCH(A2,A$1:A1,0)),-4)+COUNTIF(C$1:C1,">="&ROUNDDOWN(INDEX(C$1:C1,MATCH(A2,A$1:A1,0)),-4))-COUNTIF(C$1:C1,">"&ROUNDDOWN(INDEX(C$1:C1,MATCH(A2,A$1:A1,0)),-4)+10000)+1,"")) このC列を利用してプルダウンに必要な表をE列から右側の列に作成することにして、E1セルには次の式を入力し、右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)=1,IF(COUNTIF($C:$C,COLUMN(A1)*10000+1)=0,"",INDEX($A:$A,MATCH(COLUMN(A1)*10000+1,$C:$C,0))),IF(ROW(A1)=2,"",IF(COUNTIF($C:$C,COLUMN(A1)*10000+ROW(A1)-2)=0,"",INDEX($B:$B,MATCH(COLUMN(A1)*10000+ROW(A1)-2,$C:$C,0))))) これで1行目には種類が並びますし、3行目以降にはその種類に応じた品名が並びます。なお、2行目が空白となっているのはプルダウンメニューを作成する際に先頭の行には空白の行を入れることで、プルダウンメニューの窓には空白の行から始まる品名が並ぶようにしています。 そこでシート2でプルダウンメニューを作るわけですがそのための作業として、それぞれの種類の応じた品名の表示されている範囲を名前として設定することが必要です。 初めにE2セルからE50までのセルを選択してから「数式」タブの「名前の定義」をクリックします。名前の窓にはE1セルに表示されている種類の名前、ここでは、調味料の文字を入力してOKします。F列G列…と同様の操作を行ってそれぞれのセル範囲に種類の名前を付けます。 そこでシート2での作業ですがA2セルから下方を選択してから、「データ」タブの「データの入力規則」から「データの入力規則」を選択します。 データの種類で「リスト」を選択し、元の値の窓には次の式を入力してOKします。 =INDIRECT("Sheet1!D1:AX1") A列で選択した種類の応じた品名のリストをB列に表示させるとして、B2セルから下方を選択してから、上記と同様に入力規則の操作を行い、元の値の窓には次の式を入力してOKします。 =INDIRECT(A2) これでA列で種類を選択することでB列ではその品名をプルダウンメニューに表示させることができます。

noname#204879
noname#204879
回答No.1

最近、似たような質問がありました。 http://okwave.jp/qa/q7417638.html ちなみに、私の回答は其処の[No.2]です。

関連するQ&A

  • Excelで特定の文字列から自動的に数値を入れたい

    A列1行目の文字に対してB列1行目に自動的に数値が表示されるようにしたいのですが可能なのでしょうか?   A   B 1 林檎 150←自動的に表示したい。 例えばA列1行目に『林檎』と入れたらB列1行目に『150』、A列1行目に『梨』と入れたらB列1行目に『200』という感じにしたいのです。 ちなみにA列1行目はデータ入力規則でリストから選択肢を選ぶように設定されています。

  • 一番初めに文字列が入っている列の文字列を知りたい

    次の条件で、よりA列に近い文字列を引っ張り出すにはどのような関数を使えば良いのでしょうか? 1)行の中にそれぞれ"文字列"が入っている 2)文字列が入っているセル数は行によって異なる   【A】 【B】 【C】 【D】 【E】 【1】りんご 【2】   ばなな 【3】   みかん りんご 【4】ばなな           みかん この回答を【F】列に示す場合、 【F1】はりんご、【F2】はばな、【F3】はみかん、【F4】はばなな、になって欲しいのです。 上手く質問できないのですが、とても困っています。宜しくお願いします。

  • Excelでの文字列とりだしについて

    Excel(version2013)について質問です。 ある文字列を検索範囲内で検索し、みつかった場合、 その文字列を返すようにしたいです、どのような関数を使えば宜しいでしょうか。 例えば下記A列に検索したいリスト(りんご、ばなな、ぶどう)があり、 検索したい範囲がD1~E5とします。 その場合、B列に関数を使った式を入れ、 りんご、ばなな、空文字、りんご、ぶどうと並ぶようにしたいです。 どのような関数を使えば宜しいでしょうか。       A         B      C      D        E 1  りんご   (式)        りんご  みかん 2  ばなな  (式)        ばなな すいか 3  ぶどう   (式)        すいか みかん 4              (式)        りんご  すいか      5              (式)        ぶどう  みかん                                      

  • VBA マクロで文字列を検索しカウントする。

    すいません EXCEL VBAで教えていただきたいことがあります。 ※子供と大人に好きな果物調査をした結果です。    A列  B列 1行:子供  りんご 2行:大人  バナナ 3行:大人  バナナ 4行:子供  りんご 5行:大人  りんご 6行:子供  りんご 7行:大人  バナナ 8行:子供  りんご 9行:大人  りんご ・・・以下1000行まで続く というデータがあるとして、A列が「大人」かつB列が「りんご」に合致する 行の合計個数をカウントするのはどうしたらよろしいんでしょうか。 EXCELのオートフィルタでA列:大人、その後B列:りんご、で抽出すれば簡単なのですが 以下の個数を全て抽出したいのでどうぞよろしくお願い致します。 「大人」 かつ 「りんご」と回答した人数 「大人」 かつ 「ばなな」と回答した人数 「子供」 かつ 「りんご」と回答した人数 「子供」 かつ 「ばなな」と回答した人数 どうぞよろしくお願い致します。

  • エクセルで対象のものを重複しているのもを省いて1つだけ取り出す方法

    エクセルの表で次のようなことをしたいのですが どのようにしたらいいのか教えて下さい。 Aの列に大きな項目、Bの列に小さな項目があるとします。 大きな項目の1種類を選んでそれに該当するB列のものを抜き出したいのですが 重複しているものは1つだけを取り出したいのです。 例えば   A      B  野菜     にんじん くだもの    バナナ くだもの    りんご  野菜     じゃがいも くだもの    バナナ と、いう表があったとして Aで「くだもの」となっている行のB列に書かれているものをC列に抜き出すとします。 その際、重複しているものは、いくつも抜き出さず1つだけ抜き出したいんです。 つまり   C  バナナ  りんご とする方法です。 重複がない時は オートフィルタでA列でくだものを選びBをコピーし貼り付けを行っていたのですが 重複がある時はそれだけではとても面倒ですし しょっちゅうすることなので、重複がなかったとしてももっと作業を簡素化したいと思っているのですが 簡単に行う方法はありますか? 知っている方がいらっしゃいましたらぜひ教えて下さい。

  • エクセル A列の値によって、B列の入力規則を変更

    エクセル2007を使用しております。 下図のように、【カテゴリー】A列が「野菜」の場合、【種類】B列で野菜の種類が表示され、プルダウンの中から選択、【カテゴリー】A列が「果物」の場合、【種類】B列で果物の種類が表示され、プルダウンの中から選択… ということをしたいのですが、A列の値によって、B列のプルダウンに表示される内容を変えるには、どういった方法が一番よいか、教えていただけないでしょうか。 INDEX、MACH関数、リストボックスやコンボボックスなどのサイトを見たのですが、上手くできず、勉強不足で申し訳ありませんが、急を要するためお力を貸していただけましたら幸いです。 どうぞよろしくお願いいたします。

  • エクセルでの文字列の検索(関数?)

    【シート1】    A    B 1 りんご 2 みかん 3 バナナ 【シート2】    A    B 1 バナナ  沖 縄 2 りんご  青 森 3 みかん  愛 媛 二枚のシートに、それぞれ上記のような文字列が入っていたとします。 「シート1の果物の名前の右隣に、シート2で対応している県名を検索して表示させる」という関数はあるでしょうか。 最初はVLOOKUPかと思ったのですが、どうも数式にしか使えないようなので… 申し遅れましたが、WINのエクセル2000です。 よろしくお願いします(ぺこり)

  • Excelでこのようなマクロを作りたい。

    Excelで列のA,B,Cがあります。 (列A,行1)のカラムには、果物というカラムを入れ、 (列B,行1)のカラムには、数量というカラムを入れ、 (列C,行1)のカラムには、値段というカラムを入れます。 列Aの果物というカラムの下に(すいか、バナナ、りんご)という 果物のリストがあり、列Bの数量というカラムの下に(1、2、3)という 数量のリストがあり、列Cの値段というカラムの下に(100、200、300)という値段のリストがあります。列Aのリストから、果物ではない。すいかをリストから選んだ場合に、列B,列Cの値を入力できないようにするか、列B,列Cに"-"が追加されるようなマクロを作りたいのですが… IF文を使うのはわかるのですがリストからの場合はどのように作ったら よいかわかりません!どなたか、教えてください! また、参考URLなどお願いします。

  • 文字を入力したら数値が自動入力!(エクセル)

    いつもお世話になっています。 例えばA列の1行目に「りんご」と入力(若しくはリストの中から選択)すれば、B列の1行目には自動的に「5」と数値が入力されるという仕組みを教えて頂ければと思います。 因みにA列1行目に入力する文字(上記の例では「りんご」)が仮にA列の1行目以外に入力しても、それに対応し、数値を出せるようにしたいのです。(例:A列5行目に「りんご」を入力すると、B列5行目に数値の「5」が表示) 以上の説明で分かりにくいかもしれませんが、宜しくお願いします。

  • エクセル2007の入力規則?教えて下さい。

    初心者です。出来るだけ詳しく解説して頂けると本当に助かります。 昨日、質問を出し、沢山の方に教えて頂いたのですが、未解決のままなのです。 私が、やりたい内容を書いてみました。 宜しくお願いします。 A列には種類のプルダウンメニューを作成し、果物・野菜・肉と選択出来るようにする B列にはA列で選択した各種類それぞれに、関連した商品名がプルダウンメニューで表示され選択出来るようにする。 こんな感じ 果物を選択した場合、プルダウンメニューでイチゴ・バナナ・みかん 野菜を選択した場合、プルダウンメニューでレタス・大根・白菜 肉を選択した場合、プルダウンメニューで、鶏肉・豚肉・牛肉 次にB列で選択した商品の単価が自動表示される。 こんな感じ 野菜 レタス 150 初心者なので、出来るだけ詳しく解説して頂けると助かります。 宜しくお願いします。

専門家に質問してみよう