Excel2010の入力規則の記述方法

このQ&Aのポイント
  • Excel2010の入力規則の記述方法についてお教えいただきたいです。質問番号7137145で重複入力のチェック方法を教えていただきましたが、Excel2010(Windows 7)では「参照演算子などの配列定数は使用出来ません」というエラーメッセージが出てしまいます。
  • Excel2010(Windows 7)で重複入力のチェックを行う方法について教えていただきたいです。具体的な手順や注意事項をお願いします。
  • Excel2010の入力規則の記述方法について教えてください。Excel2003(Windows XP)では完全に重複チェックができましたが、Excel2010(Windows 7)ではエラーメッセージが出てしまいます。Excel2010(Windows 7)での記述方法や注意事項についてご指導いただきたいです。
回答を見る
  • ベストアンサー

Excel2010の入力規則の記述をご指導下さい

質問番号:7137145で重複入力のチェック方法を下記のようにご指導を受けました 1・ご回答内容 C6以下のセル範囲をまとめて選ぶ 入力規則を開始する 種類をユーザー設定に変え,下の空欄に =COUNTIF(INDEX(B:B,FLOOR(ROW()+2,4)-2):C6,C6)=1 などのように記入し,        さらにエラーメッセージのタブで 顧客IDの重複 とダメな理由をメッセージに書き込んでOKする。 ご注意いただいた事    ご利用のエクセルのバージョンが不明です。ご利用のソフトのバージョンに応じて,    出来ること出来ないこと具体的な操作の段取りが変わる場合があります。    今回の回答でお話ししている手順もそうです。ご相談投稿時には,    ご利用のソフトの名称は勿論,ご利用のソフトのバージョンまでしっかり明記することを    憶えてください。 2・ご指導いただきたきこと    Excel2003(Windows XP)では、完全に重複チェックが出来ましたが、    Excel2010(Windows 7)では「参照演算子などの配列定数は使用出来ません」と    メッセージが出てしまいます。    Excel2010(Windows 7)で使用する場合の記述や注意事項のご指導をお願いいたします。

  • oguno
  • お礼率61% (179/289)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>この数式が理解出来ません。 どこで躓きましたか? アナタがどこは判っていてどこが困っているのか判らないと,アナタの判ってることまで全部説明しなきゃなりません。 D6セルに =ROW() と記入し,下向けにつるつるっとコピーしてみます 6,7,8…という数字が現れます 関数のヘルプを見てわかるように,この関数は行番号を計算します C6セルにこの関数を入れれば,そのセルが6行目だと判ります E6セルに =ROW()-2 と記入して下向けにコピーすると,行番号から2を引いた数字が並びます F6セルに =-MOD(ROW()-2,4) と記入して下向けにコピーすると, 0,-1,-2,-3という4つの数字が繰り返し並びます 関数のヘルプを見て判るように,MOD関数関数はこの場合数字を4で割った余りを計算します OFFSET関数のヘルプを確認してみると OFFSET(基準,行数,列数,高さ,幅) のように使いますと描いてあります。 前述までの理解でC6セルでは OFFSET(C6,0,0,4,1) となり,これはC6セルを基準に縦横には一つも動かず,縦4×横1のセルのカタマリが計算されます。 つまりこの時このOFFSET関数は,「C6:C9というセル範囲」と同じ意味になります。 ひとつ下のC7セルでは,前述までの理解で数式は OFFSET(C7,-1,0,4,1) を計算しています。 これはC7セルを基準に,下向けにマイナス1(つまり上に一つ)動いたセル即ちC6を基準に,縦4×横1のセル範囲を計算します つまり「C6:C9」のことです もう一つ下のC8セルでは,前述までの理解で数式は OFFSET(C8,-2,0,4,1) を計算しています。 これはC8セルを基準に,下向けにマイナス2(つまり上に2つ)動いたセル即ちやはりC6を基準に,縦4×横1のセル範囲を計算します 最後に COUNTIF(OFFSET( ),C6) は,前述までで求めた「C6を基準に縦4×横1のセル範囲」にC6の値が幾つあるか計算します C6(自分)が範囲に入っているので,計算のコタエは最低1になります と同時に,この縦4×横1に自分以外に自分と同じ内容が記入されていた場合は,計算結果は2以上になります 入力規則で,この数式の値が「1でなければ入力を許可しない」と設定しましたので,2個以上計算された(つまり自分と同じ物が4×1の中にある)場合は,重複と判定して入力を阻止します。

oguno
質問者

お礼

keithin先生 再度、早速のご指導ありがとうございます。 勉強の為に、無理なお願いを申し上げました。 ご丁寧なご指導・ご記述を賜り、良く理解できました。 ご説明をしていただくために、長文のご記述をしていただくことになり申し訳ございません。 心より御礼・感謝申し上げます。 先述いたしましたように、最終結果は後日ご報告させていただきます。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ではC6以下を選択して…の手順はそのまま,入力規則の数式を =COUNTIF(OFFSET(C6,-MOD(ROW()-2,4),0,4,1),C6)=1 と変更してみます。

oguno
質問者

お礼

keithin先生 大変遅くなりましたが、Excel2010で確認できました。 ありがとうございました。

oguno
質問者

補足

keithin先生 早速のご指導ありがとうございます。 Excel2003では、完全に重複チェックが出来ました。 Excel2010が手元にございませので、後日確認させていただきます。 先生のご指導ですから不安はございませんが、それまでお待ち下さい。 さらに、勝手なお願いで恐縮ですが、この数式の解説を御願い出来ないでしょうか。 関数など調べてみましたが、この数式が理解出来ません。 質問番号:7137145で、ご指摘・注意いただいた事は決して忘れません。

関連するQ&A

  • エクセルの「入力規則」を用いての重複チェックについて

    エクセルの「入力規則」を用いての重複チェックについて エクセルの「入力規則」でcountif関数を使い、重複チェックをしながら 入力をおこなっております。 重複の時メッセージがでるのですが、これに加えてどこと同じなのか その行をセレクトした状態など、該当するデータが分かるようにすることは 可能でしょうか? 何か方法がございましたら、ご助力をお願いいたします。

  • エクセル 入力規則のVBAを教えてください

    先日も質問させていただきましたが、どうしてもうまくいかないので、再度質問させていただきます。 エクセルで顧客管理をしています。 C列に顧客名を入力していくのですが、 同じ顧客のデータは1行にまとめたいため、 C列には同じ名前が入力できないようにしたいのです。 C列全部に データ→入力規則→設定→数式  =countif(c:c,c1)=1 と、入力規則を設定しました。 この後、ダブリ入力をすると警告のメッセージボックスが出るようになったのですが、 中にはまったく同じ顧客名なのに入力できてしまったり、 また同じ名前はないのに、入力できなかったりします。 これは何が原因なのでしょうか? どうしてもダブリ入力はできないようにしたいのですが、他に何か方法はないでしょうか? 前回のこの質問に対して、 式を=countif(c:c,c1)<=1  とするや 入力規則のコピーの方法など、お答えを頂きましたが、どうしてもうまくできませんでした。 同じく、まったく同じ顧客名なのに入力できてしまったり、 また同じ名前はないのに、入力できなかったりします。 伝票を見ながら入力していくのですが、伝票は1000枚ほどあります。 どうしても入力時点で重複をさけたいのですが、これをVBAでできないでしょうか? 入力規則のコードの書き方がわかりません・・。 いつもこちらに頼って申し訳ありませんが、どうぞよろしくお願いします。

  • エクセル入力規則で関数を使ってエラーを表示させたい

    エクセル2003を使用しています。 入力規則の条件設定でユーザー設定を選び、関数を使用して、 E5のセルに「A」、もしくは、「B」で始まるデータを入力したときに、 エラーメッセージを表示させたいのですが、 うまくエラーメッセージを表示させることができません。 COUNTIF関数を使って =OR(COUNTIF(E5,"A*"),COUNTIF(E5,"B*")) と数式に入れてみたのですが、うまくいきませんでした。 どなたかご教示いただければありがたいです。よろしくお願いします。

  • エクセル 入力規則について教えてください

    エクセルで顧客管理をしています。 C列に顧客名を入力していくのですが、 同じ顧客のデータは1行にまとめたいため、 C列には同じ名前が入力できないようにしたいのです。 C列全部に データ→入力規則→設定→数式  =countif(c:c,c1)=1 と、入力規則を設定しました。 この後、ダブリ入力をすると警告のメッセージボックスが出るようになったのですが、 中にはまったく同じ顧客名なのに入力できてしまったり、 また同じ名前はないのに、入力できなかったりします。 これは何が原因なのでしょうか? どうしてもダブリ入力はできないようにしたいのですが、他に何か方法はないでしょうか? 入力規則のようなものをVBAではできますか??

  • 入力規則のリストの連動について

    いつもお世話になります。 エクセル2010 WIN7 です エクセル2003の時に作成したリストの連動の数式をエクセル2010に適用すると下記のようなエラーメッセージが出ます。  「条件データーの入力規則には、参照演算子(OR 演算子、AND 演算子、範囲演算子など)および配列定数は使用できません。」 「データー」 「データーの入力規則」 「元の値」の所には次のような数式を入れています。 主 =INDIRECT("Sheet2!A1:AE1") サブ =INDEX(INDIRECT("Sheet2!A1:AE15"),2,MATCH(A2,INDIRECT("Sheet2!A1:AE1"),0)):INDEX(INDIRECT("Sheet2!A1:AE15"),10,MATCH(A2,INDIRECT("Sheet2!A1:AE1"),0)) ご指導を仰ぎたいのは 多分ですがサブの数式がよくないと思われます。 このどう変えればいいのか、または他の方法にしなくてはいけないのかをご指導いただけないでしょうか。 宜しくお願いします。

  • excel2003時間帯の値を返したい

    エクセル2003 各時間帯に何時間いたか、その個数を返したいのですがうまくできません。 例 データ:B列には出勤時間、C列には退社時間 D列には滞在時間   返すセル:I列には滞在時間が1時間ごとに、1行目には8~12、等 時間帯を入力済みで、J2:L32の間。   B2 8:25 C2 11:26 D2 3:01(他行には時間入力済み) I2 1時間 J1 8~12 K1 12~19 L1 19~24と入力済み。 J2に =COUNTIF($B:$B,">=8:00")-COUNTIF($B:$B,">=12:00")と入力 するとB列の8時~11時59分までの個数が返されます。 =COUNTIF($D:$D,">=0:00")-COUNTIF($D:$D,">=1:00")と入力すると D列の1時間未満の個数が返されます。 そこで =OR(COUNTIF($B:$B,">=8:00")-COUNTIF($B:$B,">=12:00"),COUNTI($D:$D,">=0:00")-COUNTIF($D:$D,">=1:00"))と入れてみましたが、TRUE と返されてCOUNTIF の 重複ではうまくいきません。 今回のような場合はどのように対 処すればよいのでしょうか?できれば関数で、できればと思います。 他調べても SUMPRODUCT などでてくるのですがよくわかりません。 仕事で至急作らなければならなくなりましたよろしくお願いします。

  • エクセルでデータの入力規則について

    エクセルのデータの入力規則を使って、A1セルが空白の時、B1セルに入力しようとすると注意メッセージが出るようにしました。 さらにわかりやすくするために、注意メッセージ表示とともに「A1セルを色付き表示する」ことはできな いのでしょうか? (ここが空白だから入力できないんですよ!…というようにさらに色で示したいのです) 恐れ入りますがよろしくお願いします。

  • 【Excel】入力規則のリスト表示について

    教えて下さい! 以前こちらで質問し、関数では教えて頂いたのですが・・・ Excelで入力規則のドロップダウンリスト「A」「B」の2つを作り、 「A」で選んだ内容によって、「B」で選択できる内容を変化させたいと 考えています。 INDIRECT関数を使用し、内容を変化させることは出来るようになったのですが 「A」を選択し直すと、「B」にすでに入力されているデータが一度クリアされ 空白の状態からリストを選択し、文字を入力するにはどうしたらよいでしょうか? Excelの標準的な方法では出来ないというお話があり、条件付き書式で =COUNTIF(INDIRECT(「A」),「B」)=0 で、文字色を白にし見えないようにする方法は教えて頂きました。 ですがこれで行うとExcel自体がエラーで閉じてしまいます。(Excel2002) マクロを使用した方法で文字をクリアすることも難しいのでしょうか??

  • 【Excel】条件による入力規則について

    Excelにて、以下の対応を行いたいです。 マクロ等を使わずに行う方法があれば、教えてください。 例) ※以下、実際に入力するものは、<>の中に書かれているものです。 A1のセルに<○>と入力すると、自動的にB1、C1、D1に<->と入り、且つA1、B1、C1、D1のセルが赤色セルとなる。 A1のセルに<×>と入力すると、自動的にB1、C1、D1には何も入力されない<空白>。 使用している環境は以下です。 Windows XP Professional SP3 Microsoft Office Excel 2003 SP3 宜しくお願いします。

  • EXCEL教えてください

    EXCEL初心者です EXCEL2007(12.0.6654 5503)SP2を使用しております もしわかりましたら教えてください A列には1から連続する数字がはいっています ただし任意で途中で1からまた始ります B列には任意の4ケタの数字がはいっています C列には100か101がはいっています B列とC列に数字を入力していくとき A列の1から連続した数字までの間で B列かつC列に入力した数字が重複してる場合 「すでに入力済みです!」とメッセージを表示させたいです たとえば以下の場合 一行目と7行目がB列:1000 C列:100でダブってますが A列をみると1から連続した数字までの間ではないのでこういうときにはメッセージは表示させず 一行目と3行目は「A列が1から連続した数字までの間で」かつ「B列かつC列に入力した数字が重複してる」 のでこういうときにエラーメッセージを表示させたいです    A  B  C 1  1 1000 100 2  2 4001 101  3  3 1000 100 4  1 2002 100 5  2 4000 100 6  3 6001 101 7  4 1000 100 説明がわかりずらかったらすみません 補足しますのでその旨記載お願いします

専門家に質問してみよう