A列  B列
a1111 z2222 *A列にもB列にも500件ほどの
a2222 y3333  メールアドレスが入っています。c3333 a1111  ダブっているアドレスもあります。
 ・   ・   ダブっているアドレスだけを抽出  ・   ・   したいのですが?
 ・   ・   宜しくお願いします。  

A 回答 (3件)

C列の1行目に以下の式を入力し、B列のデータの最後までコピーします。



=IF(COUNTIF(A:A,B1)=0,"","重複")

B列の該当セルとA列を比較してA列に同じものがあれば、”重複”と表示します。
    • good
    • 0
この回答へのお礼

ありがとうございました。解決しました!

お礼日時:2005/04/10 21:24

c3333 a1111  とは何ですか。


どれと比較して重複しているものを見つけ、見つかったらどこに。どのような標記をするのですか。
以上が解りませんと答えようがありません。
    • good
    • 0
この回答へのお礼

ありがとうございます、c3333などは、質問本文中のデーターのことで、質問文の入力レイアウトと表示レイアウトが違った為、見難い文章になってしまいました。

お礼日時:2005/04/12 03:28

C列に式「=IF(Ax=Bx,TRUE,FALSE)」を入れて、


フィルタでTRUEのものを取り出す。
というのはどうでしょうか?
    • good
    • 0

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

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

このQ&Aを見た人が検索しているワード

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

Q【エクセル】A列で英語、B列で日本語を入力する方法

皆さん
英単語のリストをするため、A列に英語、B列に日本語を打つという作業を何行も繰り返すのですが、半角/全角をいちいち変更するのが大変です。そこで、自動的に、文字入力をスイッチする方法はないでしょうか?

ご回答よろしくお願いいたします。

Aベストアンサー

こんばんは。

そういう場合は<入力規則>を使います。

次のようにしてください。
------------------------
列記号のAをクリックして、A列をすべて選択
  ↓
メニュー<データ>-<入力規則>の"日本語入力"タブ
  ↓
"日本語入力" で "オフ(英語モード)" を選択してOK
  ↓
B列をすべて選択
  ↓
同様にして "日本語入力" で "ひらがな" を選択してOK
  ↓
以上で、自動的に入力モードが切り替わります。

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む

Qエクセルの印刷タイトルの行と列を同時に設定するには?

エクセルについて教えてください。
セルA1に「学科別2学期得点表」と入力します。
A1の列幅より言葉はとびでています。
次にA2に「英語」A3に「体育」と入力します。
以上の内容を毎ページに自動で表示させたいと
思っています。
ページ設定で「行のタイトル」を『$1:$1』
「列のタイトル」を『$A:$A』としました。
エクセルのデータは縦に下へ入力するのではなく
右へどんどん入力しています。
この入力の方法でこの設定ですと、列のタイトルのみが自動で表示され、行のタイトルが自動表示されません。
でも列と行のタイトルの両方を同時に設定できるので両方とも自動表示されていいと思うのですが・・・
お分かりになる方回答をお願いします。
入力はこんな感じです。


  A   B   C   D   E  ・・・  


1 学科別2学期得点表 

2 英語 34   34   77  89  ・・・

3 体育 23   33   33  99  ・・・

 データは、得点の入力のみで右側へどんどん入力していきます。

よろしくお願いします。

エクセルについて教えてください。
セルA1に「学科別2学期得点表」と入力します。
A1の列幅より言葉はとびでています。
次にA2に「英語」A3に「体育」と入力します。
以上の内容を毎ページに自動で表示させたいと
思っています。
ページ設定で「行のタイトル」を『$1:$1』
「列のタイトル」を『$A:$A』としました。
エクセルのデータは縦に下へ入力するのではなく
右へどんどん入力しています。
この入力の方法でこの設定ですと、列のタイトルのみが自動で表示され、行のタイトルが自動表示さ...続きを読む

Aベストアンサー

まず「行のタイトル」の意味を間違って理解されているようです。
「行のタイトル」は、縦方向の改ページの際に、毎ページに印刷されるという機能です。今回の場合、横方向に長い表で、横方向の改ページとなるようですから、「列のタイトル」だけが有効になります。このため、列のタイトルである「A」列の列幅に収まる内容しか印刷されません。このため、どうしても「列のタイトル」だけで済ませるならば、「学科別2学期得点表」というタイトルの文字をA列の列幅に収まるようにフォントサイズを小さくする(列幅を多少広げた方がいいでしょうが)、もしくは、タイトルを「学科別」「2学期」「得点表」のように3行にするなどの対処法があるでしょう。

そうでなければ、ほかの方の回答にあるように「ヘッダー」にこのタイトルを指定することです。別にA1セルには、そのままタイトル文字を入力しておけばいいので、表示上は問題ないでしょう。ただ、この1行目を含めないように印刷範囲を設定することと、「行のタイトル」の設定もクリアしておくことを気をつけてください。

Q【EXCEL】数式=SUM(A1*B1+A2*B2+・・・+A100*B100)を簡略化したい

お世話になります。

今Excelで、A1~A100とB1~B100まで数値が入っています。
セルC1に「=A1×b1」、C2に「=A2*B2」…C100に「=A100*B100」と入力しました。
そしてセルC101に「SUM(C1:C100)」と入力して合計を出しました。
(実際はもっと複雑な計算なのですが、説明の為に簡略化しています)

そうすると、計算結果セルが多く発生するためファイルサイズが莫大になってしまうのと、それを数千行×6列以上を一気に計算するとXPのリソースが足りないと出て計算できません。
なので2~3列ずつ何回も数式コピペを繰り返すことになっています。

そこで【別セルに掛け算をしてから全部SUMで足す】のではなく【1つのセルに掛け算とSUMを組み込む】という事を考えて
=SUM(A1*B1+A2*B2+・・・+A100*B100)を
を入力しようとしたのですが、数式が長すぎて四苦八苦です。

この式、なんとか簡略化できませんか?

Aベストアンサー

積の合計なら
=SUMPRODUCT(A1:A100,B1:B100)
でいいのでは?

Qエクセルの印刷で途中の列を抜かしたい

エクセルの印刷で、A列、B列のとなりに、X列、Y列をくっつけて印刷したいのですが、どうすればよいでしょうか。
印刷した紙の上では、A列、B列、X列、Y列と4列が表示され、エクセルのファイル上では、C列からもちゃんとある状態です。
よろしくお願いします。

Aベストアンサー

不要な列は非表示にすれば良いと思います。

Ctrlキーを押しながら不要な列をクリックで選択。
2003ですと、書式→列→表示しない。

必要になれば隠れた列の左右の列を含み選択。
書式→列→再表示

ではいかがでしょうか。

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む

Qエクセルの表をワードに貼り付けると列幅が変わったりする問題の解決方法

エクセルで作った表をワードに貼り付けると入りきらなくて枠からでたり、
エクセルでは1列で書いた文字が貼り付けると2列になったり、列、行の幅大きく変わったりと困っています。

図として貼り付けるとエクセルで書いた表の通りにキレイ貼り付けられます。

これを図としてではなくエクセルで書いた通りの表で貼り付ける方法ありますか?
それとも絶対おかしくなるものなのでしょうか?
よろしくお願い致します。

Aベストアンサー

>直接とはエクセルを呼び出さず、ワードで表を書くような感じです。
これは、「リンク貼り付け」しない、という事でしょうか。「リンク貼り付け」を選ばなければ、エクセルから貼り付け後、ワード上でエクセルを直接起動せずに、エクセル表を編集できます。

>エクセルの表をコピーして貼り付け感じです。
少なくとも、エクセルの表をコピーする際にエクセルを呼び出す必要があると思うのですが。

>そうすると、表のどの列、行も選択できて編集できることを言ってました。
たぶん、その言ってた方に聞くのが一番早いと思います。
この文章を私の解釈からすると、私の回答でそのような事が出来ていると思われます。

出来ていないと思われるなら、何が出来て、何が出来ていないのかをもう一度整理して質問し直したほうがいいかもしれません。
お役に立てず、申し訳御座いません。

Q例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA

例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA-Gさん別々に出したいんですが簡単なvbaの記述方法はないでしょうか?
お願いします。

Aベストアンサー

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
With Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B"))
.Formula = "=SUMIF(Sheet1!A:A,A2,Sheet1!B:B)"
.Value = .Value
End With
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A...続きを読む

Qエクセル 複数列の入れ替えについて

エクセルで、下のような動きをさせたいとき使えるエクセル機能はありませんでしょうか?会社で、毎日インターネットからCSVでデータを落として、フォーマットの違うアプリケーションに取り込むため、毎日エクセル上で80列くらいを切り取り貼りしなくてはならず、エクセルで勉強したら使える機能があるのか、手作業しなければならないのか、またやり方を教えていだだきたいです。
実際はインターネットからのCSVで80列ぐらいのデータですが8列として、取り込めるアプリでは10列として例を書きます。
例)<インターネットから落としたCSVの並び順>
A列:受付No.、B列:会社名、C列:会社住所 D列:会社住所2 E列:担当者名 F列:電話番号 G列:ブランク H列:クレーム内容
<クレームを管理するアプリケーションで取込できるCSVの並び>
A列:受付No.、B列:ブランク、C列:クレーム内容、D列:担当者名、E列:会社名、F列:ブランク、G列:会社住所、H列ブランク、I列:会社住所2、J列:ブランク

毎日同じ並び替え作業をしていますが、これだけで半日以上つぶれてしまいます。
なにかいい方法がありましたら、どうぞよろしくお願いします。

エクセルで、下のような動きをさせたいとき使えるエクセル機能はありませんでしょうか?会社で、毎日インターネットからCSVでデータを落として、フォーマットの違うアプリケーションに取り込むため、毎日エクセル上で80列くらいを切り取り貼りしなくてはならず、エクセルで勉強したら使える機能があるのか、手作業しなければならないのか、またやり方を教えていだだきたいです。
実際はインターネットからのCSVで80列ぐらいのデータですが8列として、取り込めるアプリでは10列として例を書きます。
...続きを読む

Aベストアンサー

データの入れ替えだけですよね?
毎日なさっているのであれば、自動化できれば、大いに効率アップということになりますね。
たいして難しくないと思われますので、是非トライしてください。

◆方法1(入替えの雛形を作る)
シート1にCSVを取り込むと仮定して、事前に、シート2に入替えた形でシート1を参照する式を入れたものを用意しておく。
そうすればシート1にデータを取り込めば、自動的にシート2に必要なものができていることになります。

最終的にどのような形で利用するのか不明ですが、値として取得したければ、シート2をコピーし別シートに「形式を選択してペースト」-「値」で値のデータが得られます。


◆方法2(VBAを利用する)
単純な列の移動だけみたいなので、「マクロの自動記録」でもほとんど作成可能ですが、入替えのマクロを作成し、ボタンに登録しておくなどすれば、次回からはワンクリックで作業が完了するようになります。

QエクセルでA列文字中にある複数のメールアドレスをそれぞれB列、C列、etcに書き出す。

表題の通りなのですが、具体的には以下の具合です。ソフトはGoogle spreadsheet

A列
1000xxxx1@shop.rakuten.co.jp 1000xxxx2@rakuten.co.jp 1000xxxx3@shop.rakuten.co.jp

この文字列にはメールアドレスが三つほどある(時に、一つ。時に二つ。のことも有り) ので、

B列
1000xxxx1@shop.rakuten.co.jp

C列
1000xxxx2@rakuten.co.jp

D列
1000xxxx3@shop.rakuten.co.jp

というように出来ればと思います。

Aベストアンサー

VBAのSplit関数でいけるかな。
http://officetanaka.net/excel/vba/tips/tips62.htm


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

人気Q&Aランキング

おすすめ情報