我有如下数据......
1 A
1
1
1
2 B
2
2
2
3
3
3
4 C
4
4
它持续 38,000 行,我需要用与 A 列中的唯一值相关联的 B 列中的初始值(如果存在)自动填充 B 列中的空白单元格,如果没有与 A 列中的唯一数字相关联的值,则插入“N/A”。结果看起来像这样......
1 A
1 A
1 A
1 A
2 B
2 B
2 B
2 B
3 N/A
3 N/A
3 N/A
4 C
4 C
4 C
有没有办法在 excel 中做到这一点?如果没有,其他程序的任何指导也会有所帮助。原始数据为 .CSV,但不整洁。Excel 表很整洁,但不完整,如上所示。
答案1
- 复制这两列并将其粘贴到另一张表中
- 过滤第二列的空白
- 删除已过滤的空白单元格现在,右边只剩下字母,左边剩下相关数字。这是您 vlookup 的参考表。
- 将 vlookup 函数(放在 A 字母上或(要小心)放在 A 字母旁边的第三列)并向下拖动 - 就这样,简单又容易
答案2
您可以使用 Index、Match 或 VLookup(我更喜欢 Index、Match)
基本上,我看待您的问题的方式是,您可以在工作簿中再添加一张工作表,其中包含您需要自动填充的数据,并在该页面上显示实际输出...示例(我们将其称为“Sheet2”,为了减少混淆,我添加了标题):
A B C D
1 1 A
2 2 B
3 4 C
4
然后在需要自动填充数据的页面(Sheet1)上:
A B
1 1 `=INDEX(Sheet2!$B:$B,MATCH(Sheet1!A1,Sheet2!$A:$A,0))` (Just handle-drag this down)
2 1
3 1
4 1
5 2
6 2
7 2
8 2
9 3
10 3
11 3
12 4
13 4
14 4
它并不像看起来那么复杂,当数据不可用时它会给你#N/A 错误!:
答案3
您可以在 B1 中写入 1A,就像您写的一样,或者 =A1 它将具有相同的值,在 B2 中您必须写入此公式:
=IF(LEFT(A2,1)=LEFT(A1,1),B1,IF(LEN(A2)=1,A2&" N/A",A2))
如果您的数据与上面写的一样,没有空单元格,您将得到相同的结果,您可以将公式向下拖动,它会自动更改引用。此公式检查两个连续行之间的第一个字符是否相同,它将在 B 列中写入相同的值,如果不是第二个,如果检查单元格中只有一个字符,它将添加 N/A,否则它多于一个,它将在 B 中写入