Excel 数字から判断して文字を表示

このQ&Aのポイント
  • Excelにて数字から名前を表示する処理を行いたいです。VBは使用できませんので、他の方法を教えてください。
  • 1から9までの数字にそれぞれ名前を割り当て、入力された数字に対応する名前を表示する処理をExcelで行いたいです。
  • VLOOKUP関数は数字の組み合わせが多いため使用できません。他の方法を教えてください。
回答を見る
  • ベストアンサー

Excel 数字から判断して文字を表示

Excelにて以下の様な処理を関数を用いて行いたいと思います(都合上、VBは不可) 1)数字に名前を割り当てる ex:「1-田中」、「2-鈴木」、「3-佐藤」、「4-山田」、「5-橋本」、「6-山本」、「7-沢田」、「8-山岡」 2)1~9までの数字を入力する ex:「12345」、「3456」、「2487」 3)2で入力された数字を元に1の名前を表示する ex: 「12345」→「田中、鈴木、佐藤、山田、橋本」 「3456」→「佐藤、山田、橋本、山本」 「2487」→「鈴木、山田、山岡、沢田」 この様な処理はどうすれば実現出来ますでしょうか? 数字の組み合わせがいくつもあるのでVLOOKUPは使えない。と思い、質問させて頂きました よろしくお願い致します。

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

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

VLOOKUP関数を使って対応することもできますね。 例えばA1セルから下方に1234の数値などを入力するとしてそれらの数値に該当する名前をB列からF列までにひ表示させるとして、数字の1から9までに対応する氏名をM列とN列に並べて入力します。M1セルから下方には1,2,3・・・とN1セルから下方には氏名を並べます。 その後にB1セルには次の式を入力してF1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(MID($A1,COLUMN(A1),1)="","",VLOOKUP(MID($A1,COLUMN(A1),1)*1,$M:$N,2,FALSE)) *1は文字列として抽出された数字を数値に変えています。その上でVLOOKUP関数を使っています。

wtm909
質問者

お礼

ありがとうございました 期待通りの結果が得られました。 一番判りやすかったのでベストアンサーに選ばせて頂きます

その他の回答 (5)

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

 web2525様の御回答の改良案です。  まず、C3セルには次の数式を入力して下さい。 =IF(ISNUMBER($A3),IF(AND(ABS(INT($A3)),LEN($A3)>COLUMNS($C:C),INDEX($A$1:$F$1,MID($A3,COLUMNS($C:C),1)),""),"")  次に、D3セルには、C3セルの数式を少しだけ変えた、次の数式を入力して下さい。(「、名前」の形式の文字列が表示されます) =IF(ISNUMBER($A3),IF(AND(ABS(INT($A3)),LEN($A3)>COLUMNS($C:D),"、"&INDEX($A$1:$F$1,MID($A3,COLUMNS($C:D),1)),""),"")  次に、D3セルを右方向にフィル(最大の数字入力個数分)して下さい。  そして、結合した名前を表示させるセルには、次の数式を入力して下さい。 =C3&D3&E3&F3&G3&H3&I3&J3&K3&L3

wtm909
質問者

お礼

ありがとうございました この方法でも期待通りの結果が得られました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

作業列を使用しますが =IF(LEN(数字)>COLUMN()-X,INDEX(名前,MID(数字,COLUMN()-Y,1)),"") 数字は数字入力セル、名前は変換する名前リストの範囲、COLUMN()-XとCOLUMN()-YのX,Yは作業セルの配置する場所で変化します 例:数字セルがA3にあり名前リスト範囲がA1:F1にあり、作業セルがC3以降に有る場合 =IF(LEN($A3)>COLUMN()-3,INDEX($A$1:$F$1,MID($A$3,COLUMN()-2,1)),"") この計算式をC3セルに入力後右方向にフィル(最大の数字入力個数分) 入力した数字に該当する名前が各セルに表示されます 次に抽出された名前の結合 今回は数字入力セルの隣A2セルに表示するとして =CONCATENATE(C3,IF(D3="","","、"),D3,IF(E3="","","、"),E3,IF(F3="","","、"),F3,IF(G3="","","、"),G3) この数式をA2セルに入力この場合最大5人までが[、]区切りで連記されます、表示するセルとIF(次ぎのセル="","","、")の連続です最大16人まで連記可能

wtm909
質問者

お礼

ありがとうございました 期待通りの結果が得られました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

桁数が固定で無いと関数では難しいですね。それこそVBでユーザー定義関数作るなら別ですが... 現状だと5桁まで対応で Z2:Z9に田中,鈴木,佐藤,山田,橋本,山本,沢田,山岡と入力(Z1は空白) =IF(LEN(A1)=0,"",INDEX($Z$1:$Z$9,MID(A1,1,1)+1)&IF(LEN(A1)<=1,"","、"&INDEX($Z$1:$Z$9,MID(A1,2,1)+1)&IF(LEN(A1)<=2,"","、"&INDEX($Z$1:$Z$9,MID(A1,3,1)+1)&IF(LEN(A1)<=3,"","、"&INDEX($Z$1:$Z$9,MID(A1,4,1)+1)&IF(LEN(A1)<=4,"","、"&INDEX($Z$1:$Z$9,MID(A1,5,1)+1))))))

wtm909
質問者

お礼

ありがとうございました 期待通りの結果が得られました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

NO1です。 回答中に不適切な記載がありましたので訂正します。 「~該当列は列表示とします。」⇒「~該当列は非表示とします。」

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

この繰り返し処理を関数で実現するには酷です、やっぱりVBAで行う事が筋と思える。 仮に関数で行うなら、次のような方法は如何でしょうか。 (1)別列に数値1桁単位に抽出し、それをVLOOKUP関数で名前に変換(この列は非表示としておく)    別列に=IF(MID(入力セル,COLUMN(A1),1)<>"",INDEX(名前範囲,MID(入力セル,COLUMN(A1),1)),"")として最大入力桁分右にコピー    入力セル、名前範囲は列絶対参照として、該当列は列表示とします。    名前範囲行と数値は対応している事としています。 (2)(1)の非表示列を文字連結(&)で編集表示

wtm909
質問者

お礼

ありがとうございました 期待通りの結果が得られました。

関連するQ&A

  • エクセルで一番大きな数字の列名を表示させいたい

    ■■セダン■ワゴン■スポーツ■カテゴリ 田中□1□■□1□■□□□□■ 佐藤□1□■□2□■□□1□■ 鈴木□1□■□2□■□□3□■ 高橋□1□■□4□■□□4□■ 山本□1□■□3□■□□1□■ エクセルでこんな感じの表があります。 カテゴリの列に、一番大きな数字の列名(セダン・ワゴン・スポーツ)を 表示させたいのですが、どのようにすればいいのでしょうか? EX佐藤→ワゴン、鈴木→スポーツ、山本→ワゴン それから同数のものがある場合には、(田中、高橋)の場合には、同数と 表示させたく思っています。また数字がはいったセルには、データがない 場合があります。 以上よろしくお願いいたします。

  • エクセルで、次のような自動入力をしたい

      A    B    C    D   E  ・・ AA 1 田中 鈴木 佐藤          山田 2 鈴木 山田              海岡 3 田中 佐藤              佐藤 というような表があり、AAの列に名前を入力したとき、 D1に「山田」、C2「海岡」と、その行に関してAA列に新規の名前が入力されたときにD1,C2に自動入力することは、VBAで簡単にできますか? 3列目には「佐藤」さんがすでいるので入力不要です。 よろしくお願いします。(マクロ初心者です)

  • excel 重複したデータのコピー

    例えばこんなデータがあるとします。 名前  値 鈴木  1 佐藤  2 佐藤  5 小林  2 田中  3 田中  1 田中  2 斉藤  0 山田  4 山田  2 というデータから 佐藤  2 佐藤  5 田中  3 田中  1 田中  2 山田  4 山田  2 という感じで名前が2つ以上あるデータだけ抽出・コピーをしたいのですが、 どういう風にすれば出来るでしょうか。

  • エクセルで。。。

    エクセルで。。。 変則的な星取表を作成したいと思っておりますが、いいアイデアが浮かびません。 やりたいことは (例)   A  B  C  D  E  F 1鈴木 山田 2佐藤 佐々木 3鈴木 山本 4佐藤 山田 とした時に、以下のような星取表を作成したいと思っております。    山田  佐々木  山本 鈴木  1        1 佐藤  1    1 要するに、組合せの回数を星取表にペア回数として数字を入れたいのです。 皆さん、いいアイデアをご教示お願い致します。

  • エクセルで2つの条件を元に

    エクセル2007で名簿を作っています。 1ヶ月ごとにメンバーの順が変わります。 シート1(番号順に名簿を作りました)   A  B   C  1 1     山田 2 2     木村 3 3 副長 佐藤 4 4     鈴木 5 5 班長 田中 6 6     長田  シート2(こちらがメンバーに配る名簿です)   A   B  C   D 1 班長    1    3 2 田中    山田  鈴木 3 4 副長    2    4 5 佐藤    木村  長田 A2に田中,A5に佐藤を選んでくるのはvlookupで成功しました。 質問したいのは C列D列に上記の番号のようにシート1の名前を入れていきたいのですが,田中,佐藤の分を抜いた上で番号の若い順に選んできたいのです。 どのような関数をどのように使えば成功するでしょうか。  

  • 複数のシートのセル内容をひとつにまとめたい

    複数のシートのセル内容をひとつにまとめたいと思っています。 Sheet1        Sheet2      Sheet3 1 山田 ¥100  1 山田 ¥80  3 鈴木 ¥80 2 佐藤 ¥130  2 佐藤 ¥55  4 田中 ¥150 3 鈴木 ¥110  4 田中 ¥60 こんなデータを Sheet4 1 山田 2 佐藤 3 鈴木 4 田中 とまとめたいんです。 金額は必要ないので、番号と名前だけをまとめたいんです。 どうすれば良いか、教えてください。 よろしくお願いします。

  • EXCELで重複したデータの処理について

    氏名 | 点数 ----------- 山田 | ----------- 鈴木 | ----------- 小林 | ----------- 高橋 | ----------- 田中 | という表があるとします。 氏名 | 点数 ------------ 山田 | 80 ------------ 鈴木 | 100 ------------ 小林 | 70 ------------ 高橋 | 80 ------------ 田中 | 80 というように点数を入力すると 順位 | 名前 | 点数 ------------------- 1 | 鈴木 | 100 ------------------- 2 | 山田 | 80 ------------------- 2 | 高橋 | 80 ------------------- 2 | 田中 | 80 ------------------- 5 | 小林 | 70 のような表を自動的に作成できるようにしたいのですが、どうもうまくいきません。 順位と点数の並び替えは比較的簡単にできたのですが、それに対応した名前の並び替えがうまくできないのです。 VLOOKUP関数を使用して得点に対応した名前を表示させようとしたのですが、 順位 | 名前 | 点数 -------------------- 1 | 鈴木 | 100 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 5 | 小林 | 70 となってしまい、80点の取得者が全て山田になってしまいました。 このような場合、どのようにすれば正常に並び替えを行うことができるのでしょうか。 言葉足らずで申し訳ありませんが、よろしくお願い致します。 OSはWindowsXP、ソフトはEXCEL2002を使用しています。

  • エクセルで自動入力をマクロで・・・(No.1798323の応用編)

    応用が効かなくて申し訳ありません。 1798323で素敵なご回答をいただいたのですが、 状況が進展して変わってくるとVBAの書き換えがわからなくなりました。もう一度教えてください。 ※変更点は、入力元がAI列、『入力先をQ~V列に限定』したい点です。   Q    R    S    T   U V・・ AI 1 田中 鈴木 佐藤          山田 2 鈴木 山田              海岡 3 田中 佐藤              佐藤 というような表があり、T1に「山田」、S2「海岡」と、その行に関してAI列に新規の名前が入力されたときに自動入力することをVBAでどのように書けばよいのか、ご教授お願いいたします。 尚、3行目には「佐藤」さんがすでいるので入力不要です。 よろしくお願いします。

  • エクセルのセルに入力した名前を数値化

    どなたかご教授頂ければ幸いです。 エクセルの文字列(一覧表)に 田中 田中 鈴木 鈴木 佐藤 田中 田中 佐藤 佐藤 鈴木 佐藤 佐藤 と入力されているものを 集計表に 田中・・・4 鈴木・・・3 佐藤・・・5 とし、集計したいのですが、 名前を数値に読み替える方法がわかりません。 良い方法があればお教えください。 部下の月次訪問件数を容易に集計する方法を模索中です。 余計な入力を部下にさせたくないので、プルダウンで自身の 名前を選ぶだけで入力を完了とし、別の場所に作った 集計表に数値(件数)となって落ちていくものを作りたいと考えています。 よろしくお願いします。

  • エクセルで検索、並び替えの方法

    エクセルで以下のような並び変えはできないでしょうか? エクセルでA列とB列に名前が入っています。 A列、B列の名前は若干違います。 B列の名前をA列に揃えて並び変えることはできないでしょうか?  「処理前」       「処理後」  A   B        A   B 伊藤  山田      伊藤         山田  田中      山田  山田 鈴木  鈴木      鈴木  鈴木 田中  伊集院     田中  田中                     伊集院 宜しくお願いします。

専門家に質問してみよう