帮助处理单元间的数据
我需要将字符复制到由列Department 1、Department 2、Department 3、Department 4和Department 5的破折号分隔的文本字符串的左侧,以单元格Department Code在同一行中,但不连接,如果没有数据返回空白。
来自输入表单的响应一次只填充一列,因此不需要连接数据。
我需要配方来实现这一点,请尽快。
我向ChatGPT寻求帮助,这就是我得到的,但当我把它复制到我的细胞时,它是无法解析的。
=IF(OR(ISBLANK([Department AC]@row), ISBLANK([Department AG]@row), ISBLANK([Department CA]@row), ISBLANK([Department ES/SP]@row)), "", IFERROR(LEFT(TRIM([Department AC] 1000 - 8010]@row), FIND(",", TRIM([Department AC] 1000 - 8010]@row))) & IFERROR(LEFT(TRIM([Department AC]@row)), FIND(",", TRIM([Department AC]@row))) & IFERROR(LEFT(TRIM([Department AC]@row))) & IFERROR(LEFT(TRIM([Department AC]@row))TRIM([Department AG]@row)) - 1), TRIM([Department AG]@row)) & IFERROR(左(TRIM([Department CA]@row), FIND(",", TRIM([Department CA]@row)) - 1), TRIM([Department CA]@row)) & IFERROR(左(TRIM([Department ES/SP]@row)), FIND(",", TRIM([Department ES/SP]@row)) - 1), TRIM([Department ES/SP]@row)))
谢谢你!
最佳答案
-
保罗新来的 ✭✭✭✭✭✭
我提供的公式不是你之前发布的公式。你用JOIN/COLLECT发布的公式在第一个COLLECT中缺少一个范围。
要获得非空白单元格,只需要JOIN/COLLECT,不需要LEFT和FIND函数。
=JOIN(COLLECT([1st Dept]@row:[Last Dept]@row, [1st Dept]@row:[Last Dept]@row, @cell <> ""))
thinkspi.com
答案
-
保罗新来的 ✭✭✭✭✭✭
你有文本字符串的示例或截图吗?看起来ChatGPT是给你一个Excel公式,甚至不像它可能是有效的。
这与你最有可能得到的结果相似:
=LEFT(JOIN(COLLECT([1st Dept]@row:[Last Dept]@row, [1st Dept]@row, @cell <> "")), FIND("-", JOIN(COLLECT([1st Dept]@row:[Last Dept]@row, [1st Dept]@row, [1st Dept]@row, @cell <> ""))) - 1)
基本上我们用这个来获取非空白的单元格:
JOIN(COLLECT([1st Dept]@row:[Last Dept]@row, [1st Dept]@row:[Last Dept]@row, @cell <> ""))
然后我们将其放入LEFT函数中以拉入左侧字符,并使用FIND函数来定位破折号,该破折号告诉我们要拉入多少字符。
thinkspi.com
-
WinaHath ✭✭
非常感谢您的回复!!!!
所以我有这些部门组:部门1000-8010,部门AC,部门AG,部门CA,部门ES/SP。以下是文本字符串示例:
部门1000-8010:3285 -数字取证和网络安全
部门AC: AC9060 -高尔夫营-高级
部门AG: AG0160 - Kappa Sigma兄弟会
部门CA: CA0174 - PGA夏季经验
部门SP: SP0266 -律师助理研究
我需要从这些列的文本字符串中提取字母数字代码,并用该代码填充Department code列。数据由请求者在输入表单上输入,每个请求只选择一个部门,因此永远不会出现2个或更多部门列有数据的情况。
-
保罗新来的 ✭✭✭✭✭✭
所以"部门1000-8010:3285 -数字取证和网络安全"应该在单元格里,还是"3285 -数字取证和网络安全"?
上面的公式(一旦将列名调整为实际的列名)将输出
“部门1000-8010:3285”
或
“3285”
这取决于细胞中的物质。
thinkspi.com
-
WinaHath ✭✭
它应该输出3285
-
保罗新来的 ✭✭✭✭✭✭
好的。那么细胞里到底有什么呢?单元格是否实际包含“Department 1000-8010:”,还是仅仅使用列名作为示例?
thinkspi.com
-
WinaHath ✭✭
3285 -数字取证和网络安全-是该大学的一个系
Department 1000-8010是列名称,上面的代码位于下拉列表中。
与部门AG相同,这是一个列标题和
AG0160 - Kappa Sigma博爱是一个部门代码在下拉列表中。
所以对于这两个例子-我只需要alpha数字或数字部门代码输出到列部门代码。
谢谢你!
W
-
保罗新来的 ✭✭✭✭✭✭
好的。所以“部门1000-8010”不会在单元格中?如果是这种情况,那么我上面提供的LEFT公式应该适用于您,一旦您将列名更新为您在工作表中拥有的列名。
thinkspi.com
-
WinaHath ✭✭
保罗,
对不起,我很笨,我可以做一个范围从同一行(即[第一部门]@行:[最后部门]@行)?如果没有,那么我是否需要以[Dept1]@row,[Dept2]@row,[Dept 3]@row等方式输入每个部门?
-
保罗新来的 ✭✭✭✭✭✭
-
WinaHath ✭✭
早上好,保罗!
=LEFT(JOIN(COLLECT([Department 1000-8010]@row:[Department ZZ]@row, @cell <> "")), FIND("-"), JOIN(COLLECT([Department 1000-8010]@row:[Department ZZ]@row, [Department 1000-8010]@row:[Department ZZ]@row, @cell <> ""))) - 1)
我得到一个#INCORRECT ARGUMENT SET
谢谢!
Wina
-
WinaHath ✭✭
如果不是从范围收集到一个单元格,我只是想从单元格收集数据,不是空白的,并输出到单元格?我不再需要找到文本字符串左边的字符。我只是想收集数据,从一个范围的单元格,不是空白的。
我试过这个,但它没有工作:
=INDEX(COLLECT([部门代码]@row:[部门ZZ]@row,[部门代码]@row:[部门ZZ]@row, @cell ""))
有什么问题吗?
-
保罗新来的 ✭✭✭✭✭✭
JOIN/COLLECT是将非空白单元格拉入的方法。您的第一个COLLECT函数缺少一个范围。两者都应该有两个函数(如第二个COLLECT)。
thinkspi.com
-
WinaHath ✭✭
当我尝试您发送的公式时,我一直得到#不正确的参数设置。因此,我没有尝试使用LEFT函数来查找alpha数字代码,而是将代码分成单独的列。现在我只需要从一个范围内的非空白单元格收集数据。
-
保罗新来的 ✭✭✭✭✭✭
我提供的公式不是你之前发布的公式。你用JOIN/COLLECT发布的公式在第一个COLLECT中缺少一个范围。
要获得非空白单元格,只需要JOIN/COLLECT,不需要LEFT和FIND函数。
=JOIN(COLLECT([1st Dept]@row:[Last Dept]@row, [1st Dept]@row:[Last Dept]@row, @cell <> ""))
thinkspi.com