如何根据 Excel 中的空白列从一行中剪切和粘贴值?
How to cut and paste values from a row based on Blank column in Excel?
您好,感谢您的提前帮助。
我在 Excel 中尝试做的是根据列是否为空来剪切和粘贴值。
这是我的例子:
这是我的数据的样子。它是一个 ID 列,然后是其他几个描述符列。但是,包含列名的行在每个实例之后都会重复。
因此,ARX_model2 与从空白列及其关联编号开始的所有列相关联,直到最后一个字母列及其关联编号。
之后,ID 列的下一行,例如 ARX_model3 与下一组列相关联,从空白列及其相关编号开始,直到最后一个字母列。
我在这里的目的是重复 cut/paste 出每组相关的数字并以这样的结尾:
我必须使用空白列作为参考,因为描述符列的数量,即 B、C、G、E 各不相同,但每个新集合总是以空白列开头。
如能提供有关如何在 Excel 中执行此操作的任何帮助,我们将不胜感激。
嗯,这个很难。
我做了一些你可以适应你需要的东西:
你的问题太难理解了,直到我看到正确的图像。您的数据在 1 行中,您希望将该行分成更小的数据组,每组在 1 行中。分隔组的方式是那些空白列。所有组的大小都相同。
一旦我明白了,我管理了一个公式来获得一个范围内空白的第 n 个位置,所以对于第一个模型我想要第一个巧合,对于第二个模型我想要第二个巧合,依此类推.
这部分公式感谢ExcelJet:
How to Find Nth Occurrence in Excel
我调整了公式以适用于列,而不是行,这就是我所做的:
所以我编了这个数组公式:
=INDEX($A:$Y;1;SMALL(SI($A:$Y="";COLUMN($A:$Y)-COLUMN($A)+1);ROW()-ROW($B))+COLUMN()-COLUMN($B))
Because it's an array formula, it must be entered pressing
CTRL+ENTER+SHIFT or it won't
work!
这是它的工作原理:
SMALL(SI($A:$Y="";COLUMN($A:$Y)-COLUMN($A)+1);ROW()-ROW($B)
会找到第n个巧合。这里的技巧是 ROW()-ROW($B)
因为它在向下拖动时控制第 n 个部分。因此,对于第一个模型,结果将为 1,对于第二个模型,结果将为 2,依此类推。所以这将 return 一个数字,它是第 n 个空白 header 单元格。
- 第 1 步中的数字用于 INDEX 函数中,以始终在第一行获取特定值,但在不同的列。
+COLUMN()-COLUMN($B)
部分只是控制目标列,当你向右拖动公式时,所以它是动态的。
注意: 请注意,我在单元格 A1
中输入了单词 MODELS
。我不得不这样做,因为如果 A1 为空,则公式将无法正常工作。只需在上面输入任何文字即可。
我已经将示例上传到 Google 驱动器,以防你想检查公式:
https://drive.google.com/file/d/15joXnmw0fejoUg1SkaXCtNITXtQX2uvI/view?usp=sharing
您好,感谢您的提前帮助。
我在 Excel 中尝试做的是根据列是否为空来剪切和粘贴值。
这是我的例子:
这是我的数据的样子。它是一个 ID 列,然后是其他几个描述符列。但是,包含列名的行在每个实例之后都会重复。
因此,ARX_model2 与从空白列及其关联编号开始的所有列相关联,直到最后一个字母列及其关联编号。
之后,ID 列的下一行,例如 ARX_model3 与下一组列相关联,从空白列及其相关编号开始,直到最后一个字母列。
我在这里的目的是重复 cut/paste 出每组相关的数字并以这样的结尾:
我必须使用空白列作为参考,因为描述符列的数量,即 B、C、G、E 各不相同,但每个新集合总是以空白列开头。
如能提供有关如何在 Excel 中执行此操作的任何帮助,我们将不胜感激。
嗯,这个很难。
我做了一些你可以适应你需要的东西:
你的问题太难理解了,直到我看到正确的图像。您的数据在 1 行中,您希望将该行分成更小的数据组,每组在 1 行中。分隔组的方式是那些空白列。所有组的大小都相同。
一旦我明白了,我管理了一个公式来获得一个范围内空白的第 n 个位置,所以对于第一个模型我想要第一个巧合,对于第二个模型我想要第二个巧合,依此类推.
这部分公式感谢ExcelJet:
How to Find Nth Occurrence in Excel
我调整了公式以适用于列,而不是行,这就是我所做的:
所以我编了这个数组公式:
=INDEX($A:$Y;1;SMALL(SI($A:$Y="";COLUMN($A:$Y)-COLUMN($A)+1);ROW()-ROW($B))+COLUMN()-COLUMN($B))
Because it's an array formula, it must be entered pressing CTRL+ENTER+SHIFT or it won't work!
这是它的工作原理:
SMALL(SI($A:$Y="";COLUMN($A:$Y)-COLUMN($A)+1);ROW()-ROW($B)
会找到第n个巧合。这里的技巧是ROW()-ROW($B)
因为它在向下拖动时控制第 n 个部分。因此,对于第一个模型,结果将为 1,对于第二个模型,结果将为 2,依此类推。所以这将 return 一个数字,它是第 n 个空白 header 单元格。- 第 1 步中的数字用于 INDEX 函数中,以始终在第一行获取特定值,但在不同的列。
+COLUMN()-COLUMN($B)
部分只是控制目标列,当你向右拖动公式时,所以它是动态的。
注意: 请注意,我在单元格 A1
中输入了单词 MODELS
。我不得不这样做,因为如果 A1 为空,则公式将无法正常工作。只需在上面输入任何文字即可。
我已经将示例上传到 Google 驱动器,以防你想检查公式:
https://drive.google.com/file/d/15joXnmw0fejoUg1SkaXCtNITXtQX2uvI/view?usp=sharing