• 締切済み

エクセル関数について教えてください!

例 シート1のA列に部屋番号1~500まで入力してあって、別シートのA列に予約した部屋番号(1~500のどれか)が入力されると、シート1のA列の部屋番号と入力した番号と同じ場合、右横のB列に予約済みと自動的に入るような関数があったら、教えてください。

みんなの回答

回答No.9

ANo3,ANo6です。 補足要求の返事に対してだけ答えます。 > シート1に部屋の一覧があって予約状況を把握するため、 > シート1のB列に予約済かそうでないかの結果を出したいのです。 > 簡単にできますか?? ANo1,ANo2,ANo3 は回答のままで要求に答えています。(検証はしていませんが) 簡単にできます。 それぞれ、回答そのまま設定したらOKです。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.8

少しヒートアップしてきましたが、ブック全体の見直しで、 シート1に作業列挿入して、 A     B    C      D 作業列 作業列  部屋番号   C列に部屋番号101から500件入れておきます。 シート2に A     B     C      D 作業列  日付   部屋番号  予約者氏名      2008/2/20 101    山田 太郎 B,C,D列に適当にサンプルの予約を入れておいてください。 シート2の作業列には、=TEXT(B2,"yymmdd")&TEXT(C2,0) といれて 適当な行まで下フィルしておいてください。入力した日付と部屋番号をひとつのセルに表示します。 まずは、シート1のD1に =VLOOKUP(10^10,Sheet2!B:B,1) と入れておくと、シート2の日付の最後の行に入れた日付がでます。 D2には、=VLOOKUP(TEXT(D$1,"yymmdd")&TEXT($C2,0),Sheet2!A:D,4,FALSE) 下フィル(行が多いので、D2クリックして、右下にマウスもうっていって+の表示になったら、マウスをダブルクリックで、一度に下フィルされます) これで。予約がある部屋番号に、予約者の氏名が表示、空室にはエラー表示されます。 シート1のB2に =IF(ISERROR(D2),ROW(),"") A2に、=INDEX(C:C,SMALL(B:B,ROW(A1)),1) いれて、下フィル(セル右下+をダブルクリック) A列に、空室の部屋番号だけが表示されます。 シート1のA列選択して、「挿入」「定義」で、名前を空室部屋番号とでも名前をつけておきます。 シート1のC列(部屋番号)を選択して、「データ」「入力規則」「リスト」で=空室部屋番号 と指定します。 これで、B列に予約の日付入れると、C列の部屋番号を入れるときに、セルの右に▽が表示されて、空室の部屋番号しか入力できなくなります。 シート2のE列より右に今後の日付入れて関数右フィルしておくと、予約状況の一覧が表示されますが、関数目いっぱい表になりますので、動作が遅く感じてくると思います。応用で検討してください。

  • tama1978
  • ベストアンサー率24% (57/237)
回答No.7

#4です。 ISERROR関数を使用した方が、見やすいですね。 #6さんの助言より重複対策の代案を一つ。 シート2に予約した部屋番号を入力ですよね。 A B 1 ***  空白 2 *** =IF(ISERROR(VLOOKUP(A2,A$1:A1,1,FALSE)),"","重複") 3 *** ドラックコピー 4 *** ドラックコピー A1から順序よく入力していけば、重複した部屋番号を入力した場合、B列に『重複』と表示され確認できます。 関数のみの苦肉の策ですが。

回答No.6

はははは~~ 笑っちゃいますね♪ MATCH関数に、COUNTIF関数に、VLOOKUP関数 お見事! 他の関数も募集中(笑) minishibaさんへ 自宅から最寄の駅に行くのにルートは何通りもあるように、 正解は1つでは無いのです。 検証はしていませんが、どれもそれなりに動くと思いますよ。 おっ!VLOOKUP に2票 しかし、自分は残念ながら二重予約の対策を示していなかった(悔) おっ!COUNTIF に2票 しかし、これは違った考え方ですね。う~む! たぶん、電話で予約を受けた場合に、シート1の予約状況を見ながら、返事をしたいのでしょうね。 まてよ! minishibaさんへ 「右横のB列に予約済み」とはどちらのシートの右横? ただ単に部屋を割り当てるだけなのかな? これは削除対象かな? いいや!立派な補足要求ですっ!(笑)

minishiba
質問者

補足

すみません、説明が至らなかったようで、、 おっしゃる通り、電話で予約を受けたとき、 シート1に部屋の一覧があって予約状況を把握するため、 シート1のB列に予約済かそうでないかの結果を出したいのです。 簡単にできますか??

回答No.5

≫シート1のA列に部屋番号1~500まで入力してあって・・・ とは、単に部屋番号を入力しているだけなのでしょうか? だとするならシート2のA列に予約番号を入力した際シート2のA列内に重複番号があるかどうかだけの問題だと思います 見出し行【A1】に「部屋番号」、【B1】に「予約状況」 シート2の【A2】に部屋番号を入力 シート2の【B2】に =IF(COUNTIF($A$2:A2,A2)>1,"予約済み","") としてオートフィルで好きなだけコピーします シート2のA列内に同じ番号が入力されるとB列に「予約済み」と出ます

  • tama1978
  • ベストアンサー率24% (57/237)
回答No.4

B1セルに =IF(VLOOKUP(A1,Sheet2!A$1:A$500,1,FALSE),"予約済み") を入力します。 B1以下は、これをドラックして貼り付けてください。

回答No.3

B1セルに =IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$A$500,1,FALSE)),"","予約済み") と入れて、シート1のA列に部屋番号1~500まで入力してあるところまで下へコピー Sheet2!$A$1:$A$500 は、 別シートの名前をSheet2とした。 A列がどこまであるかわからないので、500行までとした。 実情に合わせて変更してください。 ではでは。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

別シート(仮にSheet2として)に、その番号があるかどうかなら COUNTIF関数が使えそうです。 シート1のB2列に =IF(COUNTIF(Sheet2!A:A,A2)=1,"予約済み","") で、下フィルしてみてください。 更に、同じ部屋番号が重複して入力できないようにするには、入力規則で出来ると思います。

  • poohron
  • ベストアンサー率59% (574/971)
回答No.1

シート1のA1~A500に1~500が入力してあり、 シート2のA1~A500に予約した部屋番号を入力する場合 シート1のB1に =IF(ISNA(MATCH(A1,Sheet2!A$1:A$22,0)),"","予約済み") として、B500までドラッグしてみてはいかがでしょう? シート2に同じ部屋番号が入力されていないか チェックする仕組みも付けないとなりませんが…。

関連するQ&A

  • Excelの関数を使ったら出来ますか?

    いま、Excelで以下のような表を作成しています。 (Sheet1) A列 該当者氏名 B列 該当者整理番号 C列 D列 (Sheet2) A列 書類番号  B列 該当者氏名 C列 該当者整理番号 (Sheet1)の該当者番号を入力したとき (Sheet2)に、(Sheet1)に入力した該当者番号と同じものがあった場合 (Sheet1)の C列に「○」を自動的に表示させたいです。 さらに、できれば同様に (Sheet1)の該当者番号を入力したとき (Sheet2)に、(Sheet1)に入力した該当者番号と同じものがあった場合 (Sheet1)の D列に(Sheet2)のC列の書類番号を自動的に表示させたいです。 関数でできるようであれば、教えてください。 自分なりに考えついたもので試してみたのですが どうも、うまくいかないんです。。。 よろしくお願いします。

  • エクセルの関数について教えてください

    エクセル関数について教えてください。 下記に入れる関数がわからず困っています。よろしくお願いいたします。 (1)B列→A列に名前を入力したら自動でB列には順番に番号が入るようにしたいです。番号は、前の行から引き続きで入れたいです。例えば、次に名前が入った場合は8になります。 (2)D列→入社日から換算して自動に勤続年数が入るようにしたいです。また、いつ開いても自動更新できるようにしたいです。 (3)H列→G列の合計金額が(sheet2)のB列~D列の間に値する場合は、(sheet2)のA列の番号が自動で入るようにしたいです。(5列6列目は省略していますが実際には数字が入ります) ただし、(sheet2)のD8(630,000)以上の数字が入った場合は、すべて620にしたいです

  • 【急】エクセル こんなときの関数!

    A列に会員番号、B列に氏名が入っています。 会員番号を入力すると氏名が自動付与されるようにするには、どのような関数を使えば良いのでしょうか! 尚、同一シート内での入力です。

  • エクセル関数

    次のような場合の関数をご教示頂けないでしょうか? ・A列には、時々連続する通し番号が入っています。 例 1 2 3 4 4 4 5 6 7 7 7 7 7 8 ・B列には、A列が1個の数字の行には 0 が、複数の数字の行には 1 が入っています。 例 0 0 0 1 1 1 0 0 1 1 1 1 1 0 ・C列に、関数で次のように自動入力したいのです。  B列が 0 なら 0  B列が 1 のグループの先頭行には 1  B列が 1 のグループの途中の行には 2  B列が 1 のグループの最後の行には 3 例 0 0 0 1 2 3 0 0 1 2 2 2 3 0 どういう関数になりますでしょうか? よろしくお願い致します。

  • エクセル関数について

    下記内容ができる関数を調べているのですが、いっこうに進みません。 教えていただけませんでしょうか。。。 A列:行番号 B列:入力列 ※A列は1~の連番ではありません。 B列で入力した最後の行が何行目(A列の値)なのかを、他のシートに 反映させたい場合。。。 よろしくお願いいたします。

  • エクセル関数で可能でしょうか?

    エクセル関数で下記のような自動計算が可能か教えて下さい。 発注伝票のチェックのためにシート1のA列に連番で発注番号があり B列に日付・C列に金額・・・というふうなデータがあります。 このファイルのシート2の特定セルに発注番号を入力したら指定したセルにその発注番号の金額を表示したいのです。 現在INDEX(Sheet1!A:AA,(MATCH(Sheet2!D1,Sheet1!A:A,0)),3) の計算式を作ったのですが、同じ発注番号が複数ある場合は最初の物しか金額を引張って来ないため行き詰っています。 発注番号が複数あった場合、その該当番号すべての金額合計を求める関数式は可能でしょうか? よろしくお願いします。

  • エクセルの関数

    宜しくお願い致します。 エクセルで以下の関数を入力したいのですが、ご存知のかた教えて頂けませんでしょうか。 WIndows8, エクセル2013 です。 シート1、 シート2と、2つございます。 どちらのシートもA列に商品管理番号が入力されております。 ただ、並び順がバラバラで、列の数もあっておりません。 シート1は商品数10000、 シート2は8000で、どの商品が少ないのか分からない状態です。 シート2のB列にだけ、仕入れ金額が入力されております。 やりたいことは シート2のA列の中から一緒の管理番号を探し、B列の仕入れ金額を 引っ張ってきて、シート1のB列に仕入れ金額を入力したいです。 宜しくお願い致します。

  • ExcelのVLOOKUP関数について教えて下さい

    AのシートにA列に番号、B列に会社名を入力、しB以降のシートは月毎別に作成し、番号を入力して会社名を引っ張ってくると言う形のVLOOLUP関数を作りました。 番号はバラバラに入力するので、1の後に50があったりその後に10があったりします。 今までそれで上手く会社名が引っ張ってこれたのですが、先日24行目に5という数字を入れたら、 「#N/A」のエラーが出ました。 エラー内容は「無効な値のエラー」と出ていますが、Aのシートには5のデータは入力されており、20以降の数字を入れると会社名が正しく表示されます。 関数が間違っているのかと思い、別シートと比べましたが同じでした。 ちなみに関数は次の通りです。Aのシートのデータは2行目から番号1→147行目に番号146のデータが入っています。 =IF(A24="","",VLOOKUP(A24,店名!B22:C167,2,FALSE)) 何がおかしいのか全く分からず、途方に暮れております。 アドバイスをお願いします。

  • エクセルの関数について

    エクセルの関数について ある条件での最大値、最小値を求める関数はないですか。 表のシートとは別シートに一覧として出力したいのですが。  例  A列   B列  支店名  金額  この場合の支店別の最大値、最小値を求める関数はないですか。  

  • エクセル関数についてです。

    教えて下さい。 シート2のD列に以下の条件の計算結果を出したいのです。 シート2のA列、B列を文字列で入力します。 参照場所はシート1のA列、B列です。 シート2のA列とB列に入力したものが、 シート1のA列B列に物と一致した項目でシート1のD列の合計をシート2のDに計算で出したいのです。 例 シート2 A1「タイヤ」 B1「Z」と記入    シート1 A1「タイヤ」、A2「ホイール」、A3「タイヤ」          B1「Z]、B2「X」、B3「Z」          D1「1000」、D2「400」、D3「2000」 となっている場合に    シート2のD1にに1000+2000=3000となるように計算式をつくりたいのです。 参照が1つの場合(A列のみ)はSUNIF関数でできたのですが、2つができません。ちなみにエクセル2000です。 よろしくお願いいたします。               

専門家に質問してみよう