当前位置:首页经验技巧Excel经验excel知识

电子表格excel 一对多 改成 一对一

2026-01-15 11:26:34

1.excel 一对多 改成 一对一

如图所示,A、B列为原始数据,C、D列为中间结果,E、F列为最终结果。

C2、D2、E2、F2分别为: 1 =B2 =A2 =IF(D2="",B3,IF(ISERROR(FIND(",",D2)),D2,LEFT(D2,FIND(",",D2)-1))) C3、D3、E3、F3分别为: =IF(ISERROR(FIND(",",D2)),C2+1,C2) =IF(ISERROR(FIND(",",D2)),INDEX(B$2:B$23,IF(ISERROR(FIND(",",D2)),C2+1,C2)),RIGHT(D2,LEN(D2)-FIND(",",D2))) =INDEX(A$2:A$23,IF(ISERROR(FIND(",",D2)),C2+1,C2)) =IF(D3="",B4,IF(ISERROR(FIND(",",D3)),D3,LEFT(D3,FIND(",",D3)-1))) C、D、E、F列的其它行的公式可以从第三行直接拉下来复制(选中C3、D3、E3、F3,鼠标放到拖拉选中区域右下角的小黑方块上,变成+号,向下拖拉,直到最后一个数据显示出来) 其中的A$2:A$23和B$2:B$23是原始数据的区域 。

2.excel 一对多 改成 一对一 搜狗问问

如图所示,A、B列为原始数据,C、D列为中间结果,E、F列为最终结果。

C2、D2、E2、F2分别为:

1

=B2

=A2

=IF(D2="",B3,IF(ISERROR(FIND(",",D2)),D2,LEFT(D2,FIND(",",D2)-1)))

C3、D3、E3、F3分别为:

=IF(ISERROR(FIND(",",D2)),C2+1,C2)

=IF(ISERROR(FIND(",",D2)),INDEX(B$2:B$23,IF(ISERROR(FIND(",",D2)),C2+1,C2)),RIGHT(D2,LEN(D2)-FIND(",",D2)))

=INDEX(A$2:A$23,IF(ISERROR(FIND(",",D2)),C2+1,C2))

=IF(D3="",B4,IF(ISERROR(FIND(",",D3)),D3,LEFT(D3,FIND(",",D3)-1)))

C、D、E、F列的其它行的公式可以从第三行直接拉下来复制(选中C3、D3、E3、F3,鼠标放到拖拉选中区域右下角的小黑方块上,变成+号,向下拖拉,直到最后一个数据显示出来)

其中的A$2:A$23和B$2:B$23是原始数据的区域

3.Excel里如何实现数据一对多的生成

这是一个数学问题,假设有3列数据,A,B,C列,集合元素分别为3,4,5,则最小公倍数为3*4*5=60,操作方法就是A列选中A1-A3,下拉填充到A60;B列选中B1-B4,下拉填充到B60;C列选中C1-C5,下拉填充到C60。这时得到的就是你要的结果。可用筛选,验证一下。

-----------------------------------------------

总的来说,就是各集合元素个数的乘积,用这个数求出每个集合循环的步长。反过来说,就是每一列元素在这个乘积的范围之内要循环几次。做法就是让类别在27行内循环一次(mod(int(row(a1)/9,3)让型号在27行内循环三次(mod(int(row(a1)/3,3),让规格在27行内循环九次(mod(int(row(a1)/1,3)。用INDEX函数类别=INDEX($A$2:$A$4,MOD(INT((ROW(A1)-1)/9),3)+1,0);型号=INDEX($B$2:$B$4,MOD(INT((ROW(A1)-1)/3),3)+1,0);规格=INDEX($C$2:$C$4,MOD(INT((ROW(A1)-1)/1),3)+1,0);下拉填充,就可以了。

4.excel 一对一改成一对多

Private Sub Worksheet_Change(ByVal Target As Range)If Target.Column <> 1 Then Exit Sub Dim d, arr, i Set d = CreateObject("Scripting.Dictionary") arr = Sheets("Sheet1").UsedRange.Value For i = 2 To UBound(arr) If arr(i, 1) <> "" Then d(arr(i, 1)) = "" Next With Target .Offset(, 1) = Join(d.keys, ",") End With Set d = NothingEnd Sub。

5.Excel 如何实现一对多的转置

这个需要数组公式解决了

首先对A列使用高级筛选 选择不重复记录,复制至其他位置 选择C1 确定

然后D1输入公式 =IF(ISERR(INDEX($B$1:$B$100,***ALL(IF($A$1:$A$100=$C1,ROW($1:$100),""),COLUMN(A1)),1)),"",INDEX($B$1:$B$100,***ALL(IF($A$1:$A$100=$C1,ROW($1:$100),""),COLUMN(A1)),1))

CTRL SHIFT 回车结束,向右填充后向下填充,


免责声明:本站信息来自网络收集及网友投稿,仅供参考,如果有错误请反馈给我们更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任,谢谢您的合作。
版权所有:五学知识网 Copyright © 2015-2026 www.z8000w.com. All Rights Reserved .