我有事。表格:
表A -超过1000台未安装特定软件的计算机的列表
表B -使用Get-WmiObject
PS cmdlet从本地DNS获得的15000多个主机到IP地址条目的列表。
我们正在调查为什么为表A 生成的计算机数量仍然很高,而我需要从表B 获取其IP地址。通过使用VLOOKUP
函数,可以从表B 中的相应DNS条目中获取表A 中的机器的相应IP地址。我面临的最大障碍是,对于数百台在DNS中记录有两个或多个IP地址的计算机,因为有许多笔记本电脑漫游并与不同的子网相关联。 对于使用公式与之关联多个IP地址的每台机器,如何将两个或多个单元的IP地址值连接到一个单元中? 一种使公式足够智能以检测多个条目的主机名并对其多个IP地址执行所需的串联,并仅获取那些仅具有单个条目的主机名的IP地址值的方法?
例如,如果一台计算机在Table B
中有3个条目(3行),其3个IP地址为PC1.abc.com
,10.10.10.15
,则列出其名称192.168.10.11
3次,和172.16.25.23
,则Table A
中该计算机的条目(1行)在IP Address
列下应有一个值,该值应等于所有这3个IP地址的组合,并用逗号(,
-10.10.10.15, 192.168.10.11, 172.16.25.23
。我希望为此使用完全不支持宏的Excel。
答案 0 :(得分:0)
从在线的其他Excel会员那里获得了帮助(尽管有些问题使我无法粘贴URL,但我想这样做)。无论如何,它们可以很容易地被查找。这是两个公式,两个都起作用:
=TEXTJOIN(", ",TRUE,IF(<TableName>[<HostNameColumnName>]=<LookupCell>,<TableName>[<IPAddressColumnName>],""))
或
=TEXTJOIN(", ",TRUE,IF(<LookupCell>=<TableName>[<HostnameColumnName>],<TableName>[<IPAddressColumnName>],""))
作为输入数组的公式,应使用 Ctrl + Shift + Enter 输入以上两项。如果输入正确,公式将自动用{}
括起来。
因此,如果查找单元格为A2
,则Excel中DNS表(表B)的名称为Table2
,主机名列的名称为HostName
,并且IP地址列的名称为IP Address
,则公式为:
=TEXTJOIN(", ",TRUE,IF(A2=Table2[HostName],Table2[IP Address],""))
并且,如果使用 Ctrl + Shift + Enter 组合正确输入到单元格中,则生成的公式将在公式栏上显示为:
{=TEXTJOIN(", ",TRUE,IF(A2=Table2[HostName],Table2[IP Address],""))}
感谢所有提供这些答案的人。