人気マンガがだれでも無料♪電子コミック読み放題!!

A列に顧客名
B列に住所
C列に電話番号
が入力されているデータがあります。
年賀状を重複しないで送りたい為、重複チェックをしたいのですが、
名前だけのチェックでは同姓同名の別人という場合もあるので、A1、B1、C1を1つのセットとして考え、2行目以降に、ABCのデータが全く同じ顧客がいたら、色や◯で重複していることがわかるための方法を教えてください!

A 回答 (7件)

こんばんは。


なかなか難しいご質問だと思いました。

例えば、「安藤さくら」「安藤 さくら」「安藤 サクラ」
見かけは似ていても、バイナリーでは全部違います。
電話番号も 01 - 1234 - 7890/ 01-1234-7890/01-1234-7890

これらを一般的な方法では同一に扱うことは不可能ですし、真ん中の空白が入っている、入っていないさえ、別ものに扱ってしまいます。住所も含めると、これもパターンで統一の変換しないといけないわけです。

もうひとつ気になるのは、半角・全角の混在で、特にハイフン(-)とと同様の全角・半角文字列や

住所の漢数字とアラビア数字とその一部の全角半角。住所の「番地」「丁目」を入れた書き方とそうでない書き方。

これらを関数ではうまくいくと思えなくなりました。そこで、名前と電話番号ぐらいにして、住所まで入れると逆に精度が落ちるような気がします。また、最低限の置換で、文字列内の全角の空白・半角の空白ぐらいは除去すべでしょうね。

私が昔やっていた方法は、名前が1番で、電話番号が2番でソートを掛けます。
入力がそれぞれの癖があっても、人間の目からは同じか別か判定できるます。2000件程度なら、目でも可能です。削除するものに印を入れていくわけです。

最後に、削除の印をしたものをソートを掛けて削除します。
順番自体を狂わせたくなかったら、インデックスで、1,2,3,...と入れておけば、順番は戻ります。

それと、私は、回答者としてはマクロ専門ですが、さすがに、No.1さんの回答の内容では、どうやってマクロにするのか、分からないですね。曖昧検索をどの程度可能にするかという技術が必要だとは思うのですが、いずれにしても最後は目視による削除しかないように思っています。
    • good
    • 0

添付図が参考になれば仕合せかと。


意味不明ならサヨナラです。
セル G2 に式 =B2&"_"&C2&"_"&D2 を入力
セル F2 に式 =IFERROR(MATCH(G2,G$1:G1,0)-1,"") を入力
範囲 F2:G2 を下方にズズーッとオートフィル
「エクセルです」の回答画像6
    • good
    • 0

こんにちは



一発では出ないけれど、マクロを使わない方法です。

名前はともかく、住所などは内容が同じでも記述方法がいろいろだったりするので、意味として同じか否かをチェックするのはやっかいだと思いますが…
ひとまず、「まったく同じ文字列か否か」で判断して良いものと仮定します。

(1)D列にA~C列を連結したものを作成します。
(邪魔になる場合は、他の列にしたり、非表示列にしておけば良いです)
例えば、D1セルに
 =A1&"§"&B1&"§"&C1
と入力して下方にフィルコピーします。
区切り文字("§")は、住所録に出て来ない文字であれば何でも良いです。
これで、D列の重複をチェックしさえすればよくなりました。

(2)E列に結果を記すものとして
E1セルに
=IF(COUNTIF(D$1:D1,D1)>1,"重複","")
と入力して、下方にフィルコピーします。

この結果、E列には、重複のある行のうち2番目以降に出現する行に「重複」の文字が表示されるようになります。
(重複するもののうち最初に出現する行には何も表示されませんが、多分、それで質問の内容と合っていると思いますので…)
    • good
    • 0

・・・追記・・・



文句を言っちゃダメ。
分からない物を分からないままで済まそうとする態度は褒められたものではない。
ここは、疑問を「自分の力」で解決できるようにするための場所です。
Q&Aってのはそういう物なんですよ。
何かと理由を付けて考えることを後回しにする人が利用する場所ではありません。
    • good
    • 1

D列にA列からC列までの文字列を結合した物を使って、


E列の1行目に
 =COUNTIF(D$1:D1,D1)
と入力して、必要な行まで複製する。
でもって、E列に「2」以上の値が表示されたものが重複しているデータ。
    • good
    • 1

No.1です。



> マクロが全くわかりません。

でしたらここで「これで出来ると思うよ」を示しても、実際に動かして不備が有ったりちょっと機能仕様を変えたいところがあっても何もできません。
そもそも全くわからないのであればExcelのマクロの編集画面を開くこともままならなかったり、開けても教わったソースコードをどう入力し、どう実行すればよいかもわからないでしょう。
それを全てこういった掲示板でやりとりして理解するのは現実的ではありません。

ということで身の周りにいるわかる人に依頼しましょう。
そういう人も居ない場合はExcelの該当表を印刷して目視で先に示したチェック(処理手順の「」部分)を行うのが早いでしょう。
データが数千、数万のオーダーですとそれも非現実的ですが。。。

参考まで。
    • good
    • 0

以下のようなマクロを作成して実行します。



機能:
  他の行と重複する行が無いかチェックし、有ったらその行のD列に〇印を入れる。

処理手順:
 1行目から最終行の1行前の行まで以下の処理を繰り返し行う。

 「対象行の顧客名、住所、電話番号を取り出し、対象行の次の行から最終行までそれらと全て同じ値を持つ行がないかを1行ずつチェックし、有ったらその行のD列に〇印をセットする」

マクロの作り方はExcelマクロの入門書で勉強されたり、同様の解説を行っているWEbサイトのページを利用されるとよいです。
また、Excelのマクロ編集画面のメニューバーにある「ヘルプ」も役立ちます。

参考まで。
    • good
    • 1
この回答へのお礼

うーん・・・

マクロが全くわかりません。
仕事で急ぎだったので、勉強してる時間もありません。

お礼日時:2018/12/07 13:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qエクセルについて。

次の数式を求める関数(下の方のプラン表)は、どんな数式を打てば良いのでしょうか?教えていただけると幸いです。

Aベストアンサー

単純な足し算ですよね。
添付画像のように作ったとして

[C8]=SUM($B$2,C$7,$B8)

これを[C8:F12]の範囲にコピーすればOK。

通常、数式のセルは、コピー貼り付けすると、移動先に応じてセルアドレスが変わってしまいますが、
「$」をつけることで、固定することができます。

上の式だと、どこに移動しても

$B$2 は B2 を参照するように固定される。

C$7 は 7行目 を参照するように固定される。
(式を下にコピーしても、7行目に固定される)

$B8 は B列 を参照するように固定される。
(式を右にコピーしても、B列に固定される)

ということになります。
$をつけて参照先を固定するのを「絶対参照」、
つけていない普通の場合は「相対参照」、
と言います。
より詳しいことは、このキーワードで検索して調べてみてください。

金額表示については、セルの書式から、
分類:通貨
記号:\
にしてあります。
実際のセルに「\」は入力されていません。

Q旅行案内の背景と、飛行機の形について。

旅行案内の説明の後ろの背景と、飛行機の下ががたがたしているのはどうやって作ったのでしょうか?
教えていただけると幸いです。
https://oshiete.goo.ne.jp/qa/10835060.html

Aベストアンサー

No.1の回答者です。
何かの問題集を解いているのですよね。

その問題を出している方に、画像の提供や参照先を訊いたら。
飛行機の画像に雲があるだけなので、なにも工夫していないと思う。
ペイントでも何でもよいので、青い背景に飛行機を描き、雲も描けば
同じようなものは作成できます。
Excelはお絵かきソフトではないので、わざわざ作る人はいない。
図形機能で複雑なクリップアートを作る人たちもいるけど、そこまで
するほどの作図ではないですし。

> 飛行機の写真の形を作る方法
下側の凸凹部分が気になっているようだけど、No.1の回答に添付した
画像にあるように、白い雲があるだけですよ。
用紙の白い部分と白い雲が重なって凸凹を作っているだけですからね。

説明文の背景も、[挿入]→[オンライン画像]→[テクスチャ]で探します。
似たような画像を挿入したら、色をウォッシュアウトなどで薄くして、
背景として利用します。

Q月末の自動計算

月末火曜日の日付をスタートとして稼働日数を求めたいと思っています。

10月なら9/25~10/30まで
11月なら10/30~11/27まで
12月なら11/27~12/25までの日数を計算したいです。

月末水曜日になると当月の日数に自動で計算が切り替わるよう計算することは可能でしょうか。

わかる方がいれば教えていただきたいです。
※土日は日数に含んでOKです。

Aベストアンサー

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょうか?
その場合は、式中の「TODAY()」の部分を対象の日(=シリアル値)に置き換えればそのまま同じ計算が可能なはずです。
例えば、対象の日がA1セルに入力されているとするなら、TODAY()を全てA1に置き換えればよいといった感じです。

>ただ、水曜日になったら前日の火曜日分も含めて計算してほしいです。
翌日の水曜日を2日目と計算したいという意味でしょうか?
(No1の説明を読んでいただければわかりますが)現在の式は、水曜日は1(日目)と表示される式になっています。
修正したい場合は、No1の式より常に1日多い値になれば良いだけなので、式の最後に「+1」を加えれば、お求めの結果になると思います。

>とても複雑な回答で解読できなかったので教えていただけると幸いです
式は少々長いですが、全体としての構成は、単純にIFで場合分けした式になっています。
ご参考までに、大雑把な構成を言葉で示すならば・・・
『対象日(今日)がその月の最終火曜日より前なら、前月の最終火曜日からの日数を数え、後ならその月の最終火曜日からの日数を数える』
という式になっています。

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょう...続きを読む

Q【Excel】VLOOKUP検索値が複数あった場合、下の値を表示したい

D列のコードをA列の中で検索し、
B列の値をE列に表示したいのですが、
VLOOKUPを使用した場合、検索値の最初の行が表示されます。
同じコードの場合、一番下の行の値を表示するにはどうしたら良いでしょうか。

Aベストアンサー

添付画像の通りの並びが前提となってしまいますが、こんな感じでどうでしょう。

【E2セル】=INDEX(B:B,MATCH(D2,A:A,0)+COUNTIF(A:A,D2)-1)

Q飛行機の形について。

飛行機の写真の形を、下を白い雲の形にするには、どうすれば良いのでしょうか?教えていただけると幸いです。
https://oshiete.goo.ne.jp/qa/10845425.html

Aベストアンサー

あなたは、回答者の名前などいちいち覚えていないのかな?
あちこちで同じ質問を繰り返しているから、混乱するのですよ。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12199512557
回答の内容を試して、理解できない部分だけを補足すれば、的確な
回答も得られるでしょうに。(まぁ、無理だと思うけど)
https://oshiete.goo.ne.jp/qa/10845425.html
他の掲示板の回答内容を、お礼欄にそのまま書き、その内容を問う
のもどうかと思う。(私の回答内容を無視していると思えるから)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12199512557

[透明色を指定]については、今回はありえないと思う。
飛行機自体の色にも雲の色と同じ色があるので、その部分も透明に
なってしまうから。だから無意味な回答ですね。
(他の回答者を批判するつもりはないが、混乱の元なので否定)
印刷されたものとして、白色は用紙の色を使い印刷されない部分と
なっています。ですから、雲の色は印刷されないので凸凹に見える
だけだってことを理解してください。

これ以上のやり取りは、無意味なので質問を閉じてくださいね。
私としても、そのほうが幸いです。

あなたは、回答者の名前などいちいち覚えていないのかな?
あちこちで同じ質問を繰り返しているから、混乱するのですよ。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12199512557
回答の内容を試して、理解できない部分だけを補足すれば、的確な
回答も得られるでしょうに。(まぁ、無理だと思うけど)
https://oshiete.goo.ne.jp/qa/10845425.html
他の掲示板の回答内容を、お礼欄にそのまま書き、その内容を問う
のもどうかと思う。(私の回答内容を無視していると思えるから)
https://detail...続きを読む

Qエクセルで名前入力をしたら最新日付のデータを抽出したい

初めての質問になります。
よろしくお願いします。

タイトル通りの内容で(A1)に名前を入力したら、
その名前(D列3から300行)の最新の日付(E列3から300行)のデータ(U列3から300行)を
(B1)に抽出をしたいです。
尚、使用している日付は2018/12/5 のタイプの日付形式です。
※シート別けしておらず同一シートです。

A1 あああ(入力) B1 100(抽出データ)

D列 E列 データ
あああ 2018/12/5 100
あああ 2018/11/5 98
あああ 2018/10/5 45
いいい 2018/12/4 88
いいい 以下略 以下略
いいい
ううう
ううう
ううう

昔から簡単な作業はやってきたのですが関数?となるとどうも苦手で、
これから勉強していきたいと思ってます。
いろいろ触っていくとエクセルって楽しいですね!
本当は質問ではなく自己解決してみたいところではあるのですが、
苦戦しつつ3時間が経過・・・ちょっと泣けてきましたので質問させて頂きました。
質問もこんな形式で理解してもらえるかわかりませんがよろしくお願いします。

初めての質問になります。
よろしくお願いします。

タイトル通りの内容で(A1)に名前を入力したら、
その名前(D列3から300行)の最新の日付(E列3から300行)のデータ(U列3から300行)を
(B1)に抽出をしたいです。
尚、使用している日付は2018/12/5 のタイプの日付形式です。
※シート別けしておらず同一シートです。

A1 あああ(入力) B1 100(抽出データ)

D列 E列 データ
あああ 2018/12/5 100
あああ 2018/11/5 98
あああ 2018/10/5 45
いいい 2018/12/4 88
...続きを読む

Aベストアンサー

何度も済みません。
[No.2]用の添付図です。

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

エクセル2007を使用しているのですが、IF関数について分からない事があるので分かる方アドバイスをお願いします。

A2には「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
A3には「出荷予定日」  2018/12/1 など入力されています。
A4には「=A3+1」と入力して出荷予定日の翌日の日付が入力されるようにしています。 
     例えばA3が2018/12/1の場合には2018/12/2と表示されます。

私がやりたいことですが、A5のセルに下記の情報を入力したいです。

A2のセルに「お急ぎ便」という特定の文字が含まれている場合には、出荷予定日の翌日に到着させなければいけない為、A4の日付をA5セルに表示させるようにしたいです。

反対に「通常便」「日時指定便」の文字が含まれている場合には、A5セルに何も入力せずに「空白」にしたいです。

私も色々と試行錯誤しながら下記の関数がつかえそうだと考えてみましたが、この文字列はお急ぎ便という文字がはいっている場合は○を表示させて、入っていない場合は×と表示させるものですよね。

=IF(COUNTIF(A2,"*お急ぎ便*")=1,"○,"×")

上記の○の部分に、A4のセルで表示されている文字を表示させるようにしたいのですが、可能でしょうか?×の部分は単純に削除して空白にすればいいと思うので問題がないのですが、○の部分に=A3+1とかA4とか色々と入力しましたが、入力した内容がそのまま表示されてしまって、A4の日付をA5のセルに表示させるのはできないようです。

分かる方がいらっしゃったらアドバイス頂ければ助かります。どうぞよろしくお願いします。

エクセル2007を使用しているのですが、IF関数について分からない事があるので分かる方アドバイスをお願いします。

A2には「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
A3には「出荷予定日」  2018/12/1 など入力されています。
A4には「=A3+1」と入力して出荷予定日の翌日の日付が入力されるようにしています。 
     例えばA3が2018/12/1の場合には2018/12/2と表示されます。

私がやりたいことですが、A5のセルに下記の情報を入力したいです。

...続きを読む

Aベストアンサー

>○の部分に=A3+1とかA4とか色々と入力しましたが、入力した内容がそのまま表示されてしまって

まずは、A5のセルの表示形式を日付にしましょう。

それから、A2には
>「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
なので、部分一致にしなくても

A5=IF(A2="お急ぎ便",A4,"")

でよくないですか?それとも他に文字がプラスされることがあるのですか?

QExcelのセル内文字の並び替えについて

Excelのセル内文字の並び替えについて質問があります。

セル内に名前のデータがカンマで区切られて入ってくるのですが、順番を変えたいのですが、どのような数式を使えばいいかご教示いただけませんか?

A1のデータをB1に変更できる数式はありますか?
A1=Last Name,First Name,Title 
B1=Title First Name Last Name

※A1ではLast Name First Name Titleの間にはカンマ(,)がありそれぞれの間にスペースはありません。
※B1では、可能であればそれぞれの間にスペースを入れたいです。

(例)
A1=Nihon,Hanako,Ms.
B1=Ms. Hanako Nihon

複数の処理するので、できれば数式をコピーしただけで出来るようにしたいのですが、どなたか教えてくださいませんか?

宜しくお願い致します。

Aベストアンサー

こんばんは!

手っ取り早くVBAでの一例です。
データはA列1行目からあるとします。

Sub Sample1()
 Dim i As Long, k As Long
 Dim myStr As String, myAry
  For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
   myAry = Split(Cells(i, "A"), ",")
    For k = UBound(myAry) To 0 Step -1
     myStr = myStr & myAry(k) & " "
    Next k
   Cells(i, "B") = myStr
   myStr = ""
 Next i
End Sub

※ 関数で出来るかどうか判りませんが、
考える気力がないのでVBAにしてみました。

どうしても関数でやりたい!という場合は、この質問限定の関数(ユーザー定義関数)を作成すれば
通常のワークシート関数と同じ使い方ができます。m(_ _)m

QExcelにて引き算の質問

Excelで

横並びに並んだ数字で
左端、又は0の隣の数字から引き算をする ような関数はありますか?

画像で言うと

E5セルに 5 が入力されたら

➀B4セル 1 から引き算。
その結果B4セルの値を 0 と表示したい 余りが4
(E5セル 5 - B4セル 1 =4)

②C2セル 2 と E5セル - B4セルの余り4を引き算。
C2セルの値を 0 余りが2
(➀の計算結果 4 - C2セル 2 = 2)

次にD3セル 3 と先ほどの余り2 と引き算
D3セルの値は 1 が残る。
(②の計算結果 2 - D3セル 3 = -1)

ここで結果がマイナスになるのですが、
D3セルには 1 と表示する。

次またE列に値が入力された場合は D3セルの1 から引き算をスタートし
上のように計算を繰り返し…

分かりづらい説明で申し訳ございません。

分かる方よろしくお願いいたします。

Aベストアンサー

在庫確認という事を考慮して、こんなことがしたかったのかな?
どうかしら?

QExcelの計算のセル範囲をズラーっとコピーしたい。

=A2/A3
のような式をセル内に入力し、そのセルを下に伸ばすと
=B2/B3
=C2/C3
...
と式が自動で組み替えられてコピーされるのですが、それらを右に伸ばすと
=A3/A4
=B3/B4
...
と、どちらも右にずれます。私はA2やB2はそのまま、
=A2/A3 =A2/A4 =A2/A5...
という風にコピーしていきたいのです。どうすればいいのでしょうか?

Aベストアンサー

=A$2/A3

にしてからコピーして下さい。
「$」の付いた部分は固定されますので、
下にコピーすれば
=B$2/B3
=C$2/C3
...
右に伸ばすと
=A$2/A3 =A$2/A4 =A$2/A5...
と、望んだ結果になると思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング