• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelの計算式で行き詰まりました)

Excelの計算式で行き詰まりました

このQ&Aのポイント
  • Excelの関数を独学で勉強している中で、問題に直面しました。別のシートで特定の文字を入力すると、関連するデータが表示されるようにしたいのですが、重複する場合にはエラー表示させたいです。
  • 現在、セルA1に「鈴木」と入力した場合、セルB1に「004」と表示されるように設定しています。しかし、すでに同じ名前が存在する場合にはエラー表示させたいです。IF関数とVLOOKUP関数を使用していますが、うまくいっていません。
  • さらに、別のシートの入力項目に「福岡」を入力し、セルB1に「山田」と入力した場合、セルC1に「006」と表示させる計算式を作りたいと考えています。Excelに詳しい方からのアドバイスをお待ちしています。

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

  • ベストアンサー
回答No.1

> 重複している“山田”と入力した時にはエラー表示 =IF(A1="","",IF(COUNTIF(管理番号!B1:B6,A1)=0,"該当無",IF(COUNTIF(管理番号!B1:B6,A1)>1,"重複有",VLOOKUP(A1,管理番号!B1:C6,2,0)))) > 別シート入力項目を、A1に“福岡”、B1に“山田”にしてC1に“006”を表示させる計算式でも構いません。 まず「管理番号」シートの一行目に見出しを  地域  氏名  コード のように入れ、検索シートの一行目にも  地域  氏名  コード と見出しを入れて下さい。 C2へは =IF(COUNTA(A2:B2)<>2,"",DGET(管理番号!A1:C7,3,A1:B2)) と突っ込んで、検索条件の入力はA2とB2へ。 該当が無い場合は#VALUE! 、両方の条件を複数満たす場合は#NUM!を返します。 データベース関数は異常に便利ですので、ぜひ覚えられる事をおすすめします。

hiroyuki4611
質問者

お礼

今日、早速に両方とも試してみました。 どちらも思い通りの結果が得られて嬉しくなりました。 関数は、ごく基本的なことは理解できてきているつもりですが 関数の中に関数とうような複雑に絡み合っているものになると とたんに訳がわからなくなります。 もっと頑張ってみます。 どうもありがとうございました。

その他の回答 (2)

  • hiro-ss16
  • ベストアンサー率42% (18/42)
回答No.3

一つの方法として、まず、重複しているかどうかを調べる必要が有り ます。そのためにはシート1の"D1"セルに次の式を入れて下にコピー します。 =COUNTIF($B$1:$B$6,B1) すると山田は3個ダブッテるので"3"と出ますね。 (他は"1")次にシート1の B1 から D6を ドラッグして「挿入」 「名前」「定義」で"管理表"と言う名前を定義します。 次にシート2の B1 に次の式を入れて下にコピーします。 これでシート2のA列に氏名を入れると山田以外の番号が出ると 思います。やってみて下さい。  シート2 の B1 に入れる式  =IF(A1="","",IF(VLOOKUP(A1,管理表,3,0)>1,"",   VLOOKUP(A1,管理表,2,0)))

hiroyuki4611
質問者

お礼

教えていただいたものも、試してみました。 なるほど、そういう考え方もあるのですね。 自分の頭の中だけでは辿り付けない、色々な方法があるんだなと思って参考にさせていただきました。 ありがとうございました。

回答No.2

EXCEL VBAを勉強なさったらどうですか。 エクセル関数は複雑なものを処理するのに便利ですが、 覚えていられるかに疑問符が付きます。 VBAは文法さえ覚えてしまえば、脳みその中で考えたことを完全に記述できます。

hiroyuki4611
質問者

お礼

EXCEL関数の方が基本的で理解しやすいのだとばかり思っていましたが 違うのですか? VBAも少しなら操作したことありますが 自分の頭の中で構築するには程遠い気がしていました。 機会があったら、再チャレンジしてみます。 ありがとうございました。