我想应用公式
=TEXT(A1,IF(A1-INT(A1)=0,"0","#.####"))
到带有数字的现有单元格,而无需进行复制和粘贴。
现有的电子表格已经很大并且已经填写完毕,我不想创建它的另一个副本然后处理删除重复项。
我试过使用特殊粘贴。还有关于stackoverflow的类似问题:https ://stackoverflow.com/questions/21560480/excel-apply-formula-to-existing-cells-value-without-copy-paste 但是使用算术运算和这个算法/公式我申请比较复杂。我问过在 Excel 中减少有效数字。
在https://stackoverflow.com/questions/58507643/excel-apply-complicated-formula-to-existing-cells-value-without-copy-paste?noredirect=1#comment103343484_58507643上,我听说有一种方法可以使用格式单元格,自定义,指定数字格式代码,看起来像
,##0_);(#,##0)。
问题是我不熟悉数字格式代码的语言。
如果你只是想解决你原来的问题:
格式化整个 Excel 电子表格,使小数点后只有 3 位
第二个答案有一种不会改变任何实际值的方法,因此可以很容易地应用于所有单元,无需特殊培训。
它还为建议的日期格式提供了精确的、可复制的字符串,因此可以将它们粘贴到需要的地方。
您对这个问题的第二次提问产生了这种文本更改方法。如果这样做,基础数据将更改为文本。你似乎对此很满意,所以……但它不能如你所愿。
问题是您不能使用格式设置,甚至粘贴|特殊(如果您能够复制和粘贴)来更改某些内容以适应公式并由公式执行。它不能在 Excel 中完成。
尽管第二个是复制和粘贴技术,但您至少可以做两件事来达到您想要的效果。(不幸的是,其他人使用 VBA,如果我是一个赌徒,你对日期格式的不熟悉,在这个问题中这么说,会让我觉得 VBA 不是你经常使用的东西。)
1)编写一个宏来检查数据的结尾,这样它就不必在可以知道和避免的情况下处理数十亿个没有任何内容的单元格。然后让它从那一端开始并沿着行返回(或从那一列开始,尽管行更容易)基本上首先查看单元格是否为空白,如果不是,设置一个等于单元格原始内容的变量,然后放置由您在此处拥有的公式组成的字符串中的内容,然后将单元格的内容设置为文本为该字符串的公式。然后让它向左移动一个单元格(这将在发现它为空白后立即发生)并再次执行所有操作。当如果完成该行的 A 列时,它会返回到原始列,向上一行,并继续卡车运输。
它会一次更改一个,因此几乎不需要付出任何努力,而不是尝试一次更改 43,000,000 个(或多个),就像复制和粘贴的方法可能会做的那样,这可能会使您的机器过载(我假设过载问题是您不想复制和粘贴任何内容的原因。)
2)这是复制和粘贴的方法。也许这不是问题(过载、使 Excel 停止工作、可能会丢失文件),而是您认为您必须手动进行几百万次复制和粘贴。但是,如果您愿意或有能力,请创建一个新工作表,在当前工作表上找到数据的末尾(按
Ctrl-End
)并记下单元格地址,转到新工作表,其单元格 A1,输入此公式以及何时需要输入单元格 A1 的地址,使用鼠标单击当前工作表的单元格 A1(这样就可以避免输入工作表名称等),然后使用 . 保存单元格ENTER
。现在复制它并转到此新工作表上与另一张工作表上数据末尾匹配的单元格地址。按下
Shift-Ctrl-Home
以突出显示所有内容,回到 A1。复制那个区域。(如果 Excel 对此犹豫不决,则需要分块进行。)返回原始工作表的单元格 A1,然后通过 5-6 种您喜欢的方法中的任何一种选择粘贴|特殊|值。完毕。
但是,如果您想要一种更快、更简单的方法来保持数据准确无误,只需更改它的外观,请查看我在您之前的问题中给出的答案。