Excel - 乘以文本/字符串/单词

Excel - 乘以文本/字符串/单词

我有 A 列,其中包含域名,B 列中包含 TLD = 顶级域名。我需要将 A 列中的每个单词乘以 B 列中的每个单词,并将结果放在 C 列中(将域名与顶级域名连接起来)。此外,我需要在 A 中的单词和 B 中的单词之间添加一个点。

C 列应该有 A*B 记录。

我怎样才能做到这一点?

╔═════════╦═════╦═════════════╗
║ domain1 ║ org ║ domain1.org ║
╠═════════╬═════╬═════════════╣
║ domain2 ║ net ║ domain1.net ║
╠═════════╬═════╬═════════════╣
║ domain3 ║ com ║ domain1.com ║
╠═════════╬═════╬═════════════╣
║         ║     ║ domain2.org ║
╠═════════╬═════╬═════════════╣
║         ║     ║ domain2.net ║
╚═════════╩═════╩═════════════╝
                  ...

答案1

如果无法使用 VBA 代码,您可以通过公式化的方式实现相同的结果。在单元格 C1 中输入以下公式,并根据需要将其向下复制(只需计算 A 列中的行数乘以 B 列中的行数即可确定;但一旦有空单元格,您仍然会看到它)。您也可以将公式粘贴到任何其他单元格中,但您需要确保相应地调整公式中的相应部分。该公式也适用于您拥有不同数量的域和 TLD 的情况。

=IF(ROW()-ROW($C$1)+1>COUNTA(A:A)*COUNTA(B:B),"",INDEX(A:A,INT((ROW()-ROW($C$1))/COUNTA(B:B)+1))&"."&INDEX(B:B,MOD(ROW()-ROW($C$1),COUNTA(B:B))+1))

答案2

尝试此代码,首先选择域范围,然后选择扩展名,然后选择要输出的第一个单元格。您需要将代码放在模块中,然后直接从模块运行它,或者将其链接到表单上的按钮。

Option Explicit

Sub MyDomains()
Dim x As Long, y As Long, c As Long
Dim d As Range, e As Range, o As Range
On Error GoTo Err_Exit
Set d = Application.InputBox(Prompt:="Select your domain range:", Type:=8)
Set e = Application.InputBox(Prompt:="Select your extension range:", Type:=8)
Set o = Application.InputBox(Prompt:="Select first cell of your output range:", Type:=8)
For x = 1 To d.Rows.Count
    For y = 1 To e.Rows.Count
        o.Offset(c, 0) = d.Cells(x, 1) & "." & e.Cells(y, 1)
        c = c + 1
    Next y
Next x
GoTo MExit
Err_Exit:
MsgBox "There was an error, ensure you select correct ranges."
MExit:
End Sub

相关内容