在EXCEL 2010电子表格中,如何为群集单元格值创建交替填充颜色,更改何时达到新值群集?
假设列A包含以下值:
值
123
123
123
456
456
789
789
789
789
我希望A2:A4中的所有123个值具有相同的填充颜色(例如,绿色),A5中的所有456个单元格:A6是新填充颜色(比如蓝色),以及所有789个单元格中的A7:A10返回用于123值的填充颜色(再次为绿色).
这与许多重复值示例不同.
这是一个练习,我想一遍又一遍地重复报告,其中值将动态变化,无法预料.
VBA解决方案没问题.
谢谢.
该问题使用以下示例字符串:
$r =
"20160112 11:26:39 UPDATE CMIS-NC.ABC.LA012345J.NAM/MOUSE, MICKEY J.SEX/M.RAC/W.DOB/19670601.PCA/A1.ARI/CRIM1234567.DNY/CONVICTED OF DISTRIBUTING THE PEACE.OCA/123456.SOR/LA.MIS/CONFIRM RECORD AT DISNEY STUDIOS 123-456-7890 OR PAGER 123-456-7890.
20160112 11:26:39 RESPONSE CMIS-NC.ACK 1234567890 CMIS-NC 123456 CMIS-NC 123456 20160112 11:26:31
.
20160112 11:26:39 INFO MSN of message to LEMS is <1234567890>.
20160112 11:26:39 RESPONSE CMIS-NC.MSG 1234567890 CMIS-NC 123456 NC2K AC1234 20160112 11:26:31
LA012345J
CTL/
ATN/
6L12345678901234567890EDP
LA012345J
ACCEPT MKE/EDP
NAM//MOUSE, MICKEY J
ARI/CRIM1234567
NRI/1234567890"
Run Code Online (Sandbox Code Playgroud)
可以使用 PowerShell 内置正则表达式捕获命名组,方法是在$matches
自动变量中引用它们:
$updateRequestPattern = "(?<RequestDate>\d{8} \d{2}:\d{2}:\d{2}) (?<UpdateRequest>UPDATE CMIS-NC\.[A-Z]{3,4}\.LA012345J\..+)\n"
$request = $r …
Run Code Online (Sandbox Code Playgroud) 为什么.NET Framework ArrayList类.Add方法在PowerShell实现中不起作用?
除非我另外纠正,否则我认为我的故事的整体道德可能是:不要假设本机PowerShell方法将与.NET方法相同,并且在PowerShell中尝试.NET方法时要小心.
我正在寻找的原始解决方案是从一个函数返回一个日期列表,作为一个数组,用户定义的日期范围作为参数.然后引用日期数组来移动和读取以日期戳命名的文件.
我遇到的第一个问题是创建一个动态数组.我不知道我在做什么,并且错误地.Add
在@()
数组声明上调用.NET 方法.
使用"1"参数调用"Add"的异常:"Collection具有固定大小."
我认为我需要找到一个动态数组类型,当我真正的问题是我做得不对时.这让我走向了一个不同的方向,直到很久以后,我发现应该使用+=
语法将对象添加到PowerShell数组中.
无论如何,在我回到如何正确使用PowerShell数组之前,我在其他一些切线上了.
然后我找到了.NET ArrayList
类.好的.现在我有一个动态数组对象.我阅读了文档,其中说我应该使用该.Add
方法向集合中添加元素.
然后开始寻求更深入的理解,因为我经历了几天头脑紧张的挫折试图解决问题.
我制作了一个最初工作的实现.它产生了一个日期范围 - 但它也产生了一些奇怪的行为.我观察到奇怪的日期返回,例如:
0001年1月1日星期一12:00:00 AM
事实证明,我发现这是你执行此操作时获得的结果:
Get-Date 0
Run Code Online (Sandbox Code Playgroud)
该ArrayList
被返回时,首先,索引值的数组元素的列表,然后将数组值.这根本没有任何意义.我开始探索我是否正确地调用函数,我是否遇到某种可变范围问题,或者我是否只是疯了.
我现在相当确信我的挫败感是由于缺乏一个可靠的初学者参考,不仅仅展示了如何进行简单数组实现的几个例子,而是用其他解决方案描述了一些注意事项.
让我在这里解释一下,实现数组/集合的三种方法,以及我试图生成的解决方案 - 即日期范围内的日期列表.
出于某种原因,我最初认为在Powershell中向.NET ArrayList添加元素的正确方法是使用.Add方法.它的记载.我仍然不明白为什么这不起作用(严重 - 有人请赐教).通过实验,我发现通过使用+=
将对象添加到ArrayList 的方法,我可以获得准确的结果.
不要这样做.这绝对是错的.它会产生我上面描述的错误:
Function Get-DateRangeList {
[cmdletbinding()]
Param (
[datetime] $startDate,
[datetime] $endDate
)
$datesArray = [System.Collections.ArrayList]@() # Second method
for ($d = $startDate; $d -le $endDate; $d = $d.AddDays(1)) {
if ($d.DayOfWeek -ne 'Sunday') { …
Run Code Online (Sandbox Code Playgroud)