• ベストアンサー

列に入っている値が一致しているのか評価したい

画像をもとにして説明をさせていただきます。 B列にあるデータが入っております。 C列とD列にはB列を分割したデータが入っています。 B列のデータ=C列+D列のデータがイコールの時はA列に何も表示しなくていいのですが、違っているときに表示する関数はMATCH関数でよいのでしょうか? (画像のA列は関数をドラッキングしていない状態です) また、画像のように1行ずれていた場合、対象データ囲った範囲ごとをずらすような作業をしますが、A1に入っている関数だと値ごとずれてしまい役に立ちません。 どのようにしたら評価できますでしょうか?

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

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

例えばA1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(B1=C1&D1,"","相違") しかしながらご質問の最後はデータがずれていたらそれを直すことを考えていますね。C列およびD列に関数を使ってB列のデータを分割して表示させることで問題は解決できますし、A列でその違いを検証するなどの操作を必要としません。 C1セルには次の式を入力します。 =LEFT(B1,5) D1セルには次の式を入力します。 =RIGHT(B1,5) その後にC1セルとD1セルを選択してからD1セルの右下隅の■をクリックして下方にドラッグすればよいでしょう。ずらすなどの操作は全く必要としません。 ご質問で表示されている英字と数値のデータは5文字5文字の組み合わせとなっていますが上の式はそのような場合の式になっています。

mr-r00
質問者

お礼

ありがとうございます 大変参考になりました!

その他の回答 (3)

  • ka28mi
  • ベストアンサー率41% (969/2315)
回答No.3

MATCH関数は、指定した値が、検索範囲のどこにあるかを調べる関数ではないかと思います。 ご質問の場合は、素直にIF関数で確認できないでしょうか? 「ずらす作業」は行削除をすれば、仰るように式そのものが役に立たなくなると思います。 ずれた部分をコピーして貼り付ければ、式は壊れません。

mr-r00
質問者

お礼

ありがとうございます 大変参考になりました!

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

>対象データ囲った範囲ごとをずらすような作業をしますが、A1に入っている関数だと値ごとずれてしまい役に立ちません。 ずらそうとしているセル(セル範囲)を直接参照しない式にします。 A1に例えば =IF(OFFSET(A1,0,1)=OFFSET(A1,0,2)&OFFSET(A1,0,3),"","NG") などのように入れてA7までコピーしておきます。 あるいは =IF(INDIRECT("RC[1]",FALSE)=INDIRECT("RC3",FALSE)&INDIRECT("RC4",FALSE),"","NG") のようなのもお薦めですが,あんまり見慣れないので不評です。

mr-r00
質問者

お礼

ありがとうございます 大変参考になりました!

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

行ずれに対応するだけでいいなら A1=IF(INDIRECT("B"&ROW())=INDIRECT("C"&ROW())&INDIRECT("D"&ROW()),"","NG")

mr-r00
質問者

お礼

ありがとうございます 大変参考になりました!