我正在运行 Excel for Mac,2011,处理一个相当大的数据集(约 500 行,75 列),很多数据输入时整列的符号 (+/-) 都是错误的。还有相当多的“缺失”数据点,它们只是空单元格,从未收集过数据。
为了切换符号,我在原列旁边创建了一个新列,并输入以下公式:[B1=(A1)*-1](括号只是为了清晰)。运行公式后,我复制新列并将其粘贴回原始空间,并选择“仅值”。但是,每当我这样做时,所有“缺失”的空单元格都会变成零。从 Excel 的角度来看,根据乘法的定义,这是合乎逻辑的,但也是错误的。我不想在我的数据集中创建新的零,因为这些不是有效的测量值,它们会搞砸我的分析。因此,我不得不慢慢地回顾每一列(因为有一些有效的测量零,所以我必须仔细查看每一个)并删除零。
可能有更简单的方法可以做到这一点,但我不知道。有什么建议可以加快我的工作流程?有没有办法只更改 Excel 中的默认设置,以便在将公式拉到其他单元格时忽略空单元格?
答案1
简单的方法是使用
=IF(A2<>"",A2*-1,"" )
但您可能会收到有关单元格的一些警告。
我个人会避免这种情况,只需运行 VBA
Sub SwitchThem()
Dim myCell As Range
For Each myCell In Range("A1:A6")
If Not IsEmpty(myCell) Then myCell.Offset(, 1) = myCell * -1
Next
End Sub
这样就可以跳过它们。您也可以将它们设置为vbnullstring
。
答案2
对于任何这样做并愿意使用辅助列方法的人来说,还有一个额外的想法:当 PSV 重新插入时,空单元格将不再是空的。在许多方面,它将表现为空,但不会在每个用途上都是空的。例如,排序。一个真正的“空”单元格将排在任何字母列表的底部,而这种类型将排在 Az 排序的前面。像这样的函数COUNTA()
会将它们计入结果中。说到这里的重点,取决于人们如何分析事物,函数的差异可能很重要。
或者不是。应该是,COUNT()
在任何涉及计数的方法中都会使用,因为所有数据似乎都是数字,或者不存在,并且COUNT()
不计算空白,所以这里的方法不应该把事情搞砸。但有些事情需要考虑。
如果这可能是一个问题,那么避免它的最简单方法(还有其他方法)是使用如下公式:
=IF(A1<>"",A1*-1,"MMMM")
按照给出的答案继续操作,但在使用末尾添加一个步骤,Find and Replace
将“MMMM”内容替换为空。这样会得到一个真正的“空”空白,从而不会出现上述任何问题。
除此之外,我根本不怎么使用 VBA,但上面的宏看起来很像可以稍微重新调整一下,变成一行代码,然后可以在中执行,Immediate Window
而不会给组织和人们带来关于分发启用宏的工作簿的麻烦。它会直接改变值,所以看起来它会将空值保留为空值,并在瞬间结束。人们甚至可以在一个命令中输入需要修改的每个范围,然后一举完成所有操作。但即使是一次输入一个范围也比使用公式的任何方法都要快。(我会使用辅助列方法,因为我没有 VBA 技能,但如果我Raystafarian
可以编写宏,我敢打赌他也可以为其编写一行Immediate Window
!