Excel2000の関数式で6桁の数字の一致とエラーチェックを行う方法

このQ&Aのポイント
  • Excel2000を使用して、6桁の数字が特定の条件に一致するかどうかをチェックする方法を教えてください。
  • 特定の条件に一致しない6桁の数字が入力された場合にエラーが表示されるようにしたいです。
  • さらに、数字の桁数が4桁や5桁でも同様の方法でチェックできると助かります。
回答を見る
  • ベストアンサー

Excel2000使用・関数式を教えてください

A列~AV列まで6桁の数字が入力されています。 行によって、入っている件数(F列までデータが入っているとか、 AC列まで入っているとか)はマチマチです。 入っている数字もマチマチです。 数字の中には、000001、001000など、0から始まる数字もあり、 セルの書式設定はユーザー定義で種類を000000にしています。 別sheetに6桁の数字の一覧があるのですが、 (1)一覧にない数字が入力されているとエラーが表示されるようにしたい また、 (2)6桁の数字は前半3桁と後半3桁が隣の列のセルと一致しないといけないのですが、 不一致の場合は、エラーが表示されるようにしたい 例) A2 000001 B2 001000 C2 000120 D2 120346 E2 346508 F2 508346 G2 346508・・・    A3 123456 B3 456280 C3280002 D3 002428 E3 428508 F3 508346 G3 346213・・・ E2 346508 F2 508346 G2 346508 のように数字が繰り返すこともあります。 Light関数を使うと(2)は解決できたのですが(1)が解決しません =IF(RIGHT(TEXT(入力Sheet1!A2,"000000"),3)=LEFT(TEXT(入力Sheet1!B2,"000000"),3),"","ERR") MATCH関数を使うと =MATCH(入力Sheet1!A2,一覧sheet!$A$2:$A$500,0) (1)は解決したのですが、(2)が解決しません。 (1)(2)とも解決する式、或いは方法を教えて頂けたら助かります。 上記の関数式は、以前、この場で教えていただいたものです。 入力用のシートと別に、検証用のシートを作成しています。 又、もし、もし可能でしたら、別シートにある数字が4桁と5桁と6桁が混在している場合でも流用できるものであるとなお有り難いです。 その場合は前後の3桁が一致するときと、前後の2桁が一致するときがあるという イレギュラーなケースになります。入力した数字は以下のようになります 12345 4512 12650 65034 3458 58260 260013 013134 ・・・ よろしくお願い致しますm(__)m

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

条件付き書式でやっては? 対象シートがSheet1,Sheet2のA列に数字の一覧があるとします。 (1).Sheet2のA列に名前定義で名前を付けます(今回の例では:ChkData) (2).Sheet1に戻って、A2セルを選択して書式→条件付き書式→数式が…で、以下の式を入れます。  =(COUNTIF(ChkData,A2)=0)  書式は適当に(例:赤く塗りつぶす) (3).B2セルにも同様に、以下の様に設定します。   条件1    式: =(B2="")    書式:白く塗りつぶす   条件2    式: =(COUNTIF(ChkData,B2)=0)    書式:赤く塗りつぶす   条件3    式: =(MOD(A2,1000)<>INT(B2/1000))    書式:ピンクに塗りつぶす (4).B2セルをコピーしてAV2まで書式をコピペ (5).A2:AV2をコピーして下方向に必要なだけ書式をコピペ これで、一覧にない数字の場合、そのセルが赤く。左隣のセルの後半3ケタと、自セル前半3ケタが不一致な場合セルがピンクになります。 添付の画像はExcel2010でやった場合です。

tamikosan
質問者

お礼

ご回答有難うございます。 教えて頂いた方法で、6桁の場合の(1)(2)とも解決することが出来ました! まずは、御礼申し上げますm(__)m

tamikosan
質問者

補足

追加で質問なのですが、 もし、8桁になった場合、(前後4桁でチェックする場合) 教えて頂いた方法の、どの部分を変更すれば対応できるのでしょうか? ご回答頂けましたら有り難いです。宜しくお願い致します。

その他の回答 (5)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

ANo.3です。 > もし、8桁になった場合、(前後4桁でチェックする場合) > 教えて頂いた方法の、どの部分を変更すれば対応できるのでしょうか? 条件3の式を以下の様に変えて下さい。 =(MOD(A2,1000)<>INT(B2/1000)) ↓ =(MOD(A2,10000)<>INT(B2/10000)) MOD(A2,10000)が、A2の値を10000で割った余り=下4ケタの値 INT(B2/10000)が、B2の値を10000で割った整数部=上4ケタの値 です。

tamikosan
質問者

お礼

何度も、有難うございます。 とても簡単で、私のような無知な者でも理解できました。 本当に有難うございました。

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

シート1に入力シート1が有るとして、シート2のA列には一覧シートが有るとします。 条件に合わない数値に色を付けるとしてシート1のA2セルから例えばAV100セルの範囲を選択します。その上で条件付き書式を設定します。 条件付き書式の設定では数式が・・で選んで数式の窓には次の式を入力します。 =AND(COLUMN(A1)>1,B2<>"",OFFSET(A2,0,-1)<>"",OR(RIGHT(TEXT(A2,"000000"),3)<>LEFT(TEXT(B2,"000000"),3),RIGHT(TEXT(OFFSET(A2,0,-1),"000000"),3)<>LEFT(TEXT(A2,"000000"),3))) 書式をクリックして塗りつぶしのタブで例えば赤色を指定してOKします。 これでお示しのルールに従わないデータには赤色が付きます。 また、一覧の数値に無いデータにもセルに色を付けるために例えば上と同じように範囲を選択した上で、条件付き書式では数式の窓に次の式を入力します。 =AND(A2<>"",COUNTIF(Sheet2!$A:$A,A2)=0) 書式をクリックして塗りつぶしのタブから黄色を設定してOKします。 これでご質問の(1)、(2)のケースではセルに色が付くことになります。

tamikosan
質問者

お礼

ご回答有難うございます 条件付書式設定でうまく出来ることが分かりました。 有難うございました。 お手数をお掛け致しました。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.4

MATCHの括弧を閉じてないからかな、と思うのですがその前に2000だとIFERROR使えませんがいいんでしょうか?

tamikosan
質問者

お礼

ご回答頂きまして有難うございます。 Excel2000では、IFERRORは使えないんですね。 調べてみたら、どうも駄目みたいです。 折角教えて頂いたのに残念です。

回答No.2

IF文は多重構造に出来るので、 =IF(RIGHT(・・・)<>LEFT(・・・),"ERR",IFERROR(MATCH(・・・),"ERR")) ※「・・・」の部分は、質問文と同じ ただし、”ERR"または、MATCH関数の結果(数字)が表示されると思うので、 見にくくなるかもしれません。

tamikosan
質問者

補足

ご回答有難うございます。 式の作成が間違えているのだと思うのですが、 引数が多すぎるとかえります。 =IF(RIGHT(TEXT(入力sheet1!A2,"000000"),3)<>LEFT(TEXT(入力sheet1!B2,"000000"),3),"","ERR",IFERROR(MATCH(入力sheet1!A2,一覧sheet!$A$1:$A$500,"ERR")) で宜しいでしょうか。 お手数ですが、よろしくお願い致します。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

まずは、全てのセルのデータを数値にするために、=VALUE(A1)にすることをお勧めします。

tamikosan
質問者

補足

ご回答ありがとうございます。 間違えていたらすみません。 =VALUE(A1)にしますと、0から始まる数字は0が消えてしまいました。 013456と13456は違うデータ(数字の組合せ?と表現したら良いでしょうか・・)になるため、 頭の0も表示したいです。

関連するQ&A

  • excel関数

    excelで作成した表のなかで a列には各コードが入力 b列は文字列 c列は数字 別にシートを作りコード順に 最小値と最大値、平均を求めたい b列に文字が入っていないデータを探して、別シートに入力したa列コードと一致するデータをc列から探し(複数データあります)その中で更に最小値と最大値、平均を求めたいのですが 関数が分かりません。 教えていただけば助かります。 よろしくお願いします。

  • MAX関数

    A,C,E,G,I,K,M列に名前、B,D,F,H,J,L,列に2桁から3桁の数字が約300名分入力されているシート内の最大数値と最低数値を取り出す関数ご教示お願いします。AとB列、CとD列・・・2列だけならMAX関数とMATCH関数で取り出すことは出来たのですが、複数の列で全体から取り出すことが出来ません。よろしくお願いします。

  • Excel関数式で対応出来るか教えて下さい

    例えば 0001 0125 2532 3286 8545 という数字がA列の1行目からB列1行目・・・というふうに、 順番に一行に入っていたとします。 (次の行も同様に、何かしらの数字が入っています。) ひとつのセルに入った4桁の数字の下2桁が、次のセルに入っている数字の上2桁と一致していないとエラーが出るような関数式を探しています。 例では最後のセルに入っている4桁の8545の85がひとつ前のセルに入っている数字3286の下2桁86と一致していないのでエラーとなります。 数字の4桁が5桁になって、下3桁が上3桁と一致しているか確認、下2桁が上2桁と一致しているか確認というケースが混在する時もあります。 チェックする数字が大量にあるため、フィルターでチェックするのには気が遠くなります。 お知恵を拝借出来ますよう、宜しくお願い致しますm(__)m

  • 最適なExcel 関数を教えて下さい

    宜しくお願いします。 (1)sheet1  A列と   sheet2 B1  が同じで (2)sheet1 B列と   sheet2 C列  が同じだった場合 sheet1 の  D2:g2 を sheet2 の  D2:g2 に表示させたい (D2:g2)  の  2列は  (1)(2)の条件一致の際に変化する ということができる関数はありますか?

  • EXCEL2007 情報抽出 関数

    A~E列それぞれの一つのセルに"1"を入力し、F列にある情報を抽出、 G列のセルに表示させたいです。 行が多いので、IF関数などは使用できませんでした・・・ 何を使用すればよろしいでしょうか・・・? 例) A1~A20 B1~B20 C1~C20 D1~D20 E1~E20 それぞれの列の一つだけに1を入力します。 ・A 5に1を入力 → F5の情報をG1に表示 ・B15に1を入力 → F15の情報をG2に表示 ・C 2に1を入力 → F2の情報をG3に表示 ・D18に1を入力 → F18の情報をG4に表示 ・E9 に1を入力 → F9の情報をG5に表示 行数が多く、複数の関数を試してみても、数の制限にひっかかるのか うまくいかず困っています。どうぞよろしくお願いします。

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

  • Excel関数教えてください。

    データベースとなるシート2のA列に、該当する文字列を入力しています。このデータは定期的に変更し、更新する際いくつになるか一定ではありません。(なので列としています。) シート1のA列(A1とする)に、入力した文字列が、シート2のA列に入力した文字と完全一致した場合、シート1のE列(E1とする)に「◯」が表示され、 入力したものがデータベースに該当しない場合は空白にしたいのですが、どんな関数にしたらよいですか?

  • EXCEL関数について

    EXCEL関数について Sheet1、A1~A1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 B列、B1~B1000セルには「1~4」までの値がランダム入力されております。 B列については、空白のセルもあります。 Sheet2、A1~A10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、Sheet2、B列~E列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がSheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはB1セル、「2」のカウントはC1のセルに返します。 同じように「グループ2」はB2~E2のセルに、「グループ3」はB3~E3のセルに値を返したいのです。 「COUNTIF」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

  • Excel関数

    Excel2010を使用しています。 A~E列 及び H~K列の1,000行目くらいまで、1ケタから5ケタの数字を入力しています。 重複した数字がないか確認したいのですが、適した関数はありますか? (重複していた場合、指定したセルに「重複」と出るような関数など) セルは空欄の場合もあります。 ご教示いただければ幸いです。よろしくお願いします。

  • エクセルの検索・関数

    お分かりの方、教えて下さい!! エクセルにて、 A列に13桁の数字がランダムにあり、 C列にも13桁の数字がランダムにあり、 E列には1桁~3桁の数字がランダムにあります。 B列に同じ行のA列の13桁と一致するC列の13桁を見つけ、 そのC列のと同じ行のE列の数字を入れたいのです。 上記の内容が出来る関数を教えて下さい。 分かりにくくてすみませんが、よろしくお願いいたします。

専門家に質問してみよう