約 1800 通の電子メールでいっぱいのエクスポートされた Outlook 連絡先リストがあります。1 つの列 (列 A) の電子メール フィールドには、連絡先の約半分しか入力されていませんが、「表示名」の別の列 (列 B) には、他の連絡先の電子メール アドレスが含まれています。ただし、「表示名」列にはメールアドレス以外のデータも含まれているため、列Aの既存のメールを上書きすることは避けたい.
だから、列Aの空のフィールドだけを列Bのデータで埋める方法を見つけたいと思います。
3番目の列に、このコードを入力します。
=IF(A1 <> "",A1,B1)
次に、1800行すべてに適用します。
if ステートメント内にネストされた ISBLANK 関数を使用して、次のように 2 つの列を 3 番目の列に連結することもできます: =CONCATENATE(IF(ISBLANK(A2),B2,A2),B2)
Col. B のすべてを空の Col. A に入れようとしている場合は、次の VBA コードをマクロで使用できます。
Sub macro1()
Dim theSheet As Worksheet
Dim theRange As Range
Dim emailLocation As Integer
Dim output As String
Set theSheet = Sheets("Sheet1")
Set theRange = Range("A1:A" & theSheet.UsedRange.Rows.Count)
For Each theCell In theRange
If theCell = "" Then
emailLocation = InStr(1, theCell.Offset(0, 1), "(")
output = Mid(theCell.Offset(0, 1), emailLocation)
theCell.Value = output
End If
Next
End Sub
このマクロは、シートに含まれるデータの行数に関係なく機能するはずです