Если вы хотите использовать отдельный запрос, который будет возвращать другие столбцы, кроме отдельного, вам нужна какая-то стратегия, как «объединить» объекты. Представьте себе строки, подобные этим:
------------------------------
| comarca_id| key | status |
| 1 | A | your_state|
| 1 | B | your_state|
| 2 | C | your_state|
------------------------------
Что вы получите в этом случае?
SELECT DISTINCT comarca_id FROM comarca;
вернет 1,2
Однако, как вы можете объединить два ( или более) записей, которые имеют одинаковые comarca_id
и status
?
Это оставляет вам три случая:
comarca_id
+ status
уникально - > вам не нужен запрос DISTINCT
comarca_id
и status
-> вы не можете сделать запрос отличным comarca_id
-> заставить ваш метод возвращать List<BigInteger>
Я просто получил это как возможное решение по электронной почте, также:
=IF(A15<>A14,G15,IF(OR(AND(G15="CR247, ",ISNUMBER(FIND("CR247, ",H14))),AND(G15="CR149, ",ISNUMBER(FIND("CR215, ",H14))),AND(G15="CR149, ",ISNUMBER(FIND("CR180, ",H14))),AND(G15="CR180, ",ISNUMBER(FIND("CR215, ",H14))),G15="CR113, "),H14,G15&H14))
(это имеет "реальные" значения с правилами приоритета),
Это выглядит относительно подобным ответу @Joseph.
Существует ли лучшее решение?
VBA: можно всегда использовать объект RegExp. Я думаю, что это дает Вам способность протестировать что-либо на Вашем сценарии, пока Вы создаете правильно регулярное выражение.
Выезд: http://msdn.microsoft.com/en-us/library/yab2dx62 (По сравнению с 85) .aspx (для regexp ссылки)
и простой инструмент для тестирования regexps: http://www.codehouse.com/webmaster_tools/regex/
В ячейке: Вы могли сделать это в большем количестве Excel дружественный путь:
предположите на столбце A:A, у Вас есть значения.
Можно добавить новый столбец, где Вы выполняете проверку
if(indirect("A"&row()) <> indirect("A"&row()-1), indirect("G"&row()), indirect("G"&row())& indirect("H"&row()))
или независимо от того, что значения. Я предполагаю однако, что на одном ответвлении, если оператор значение должно быть пробелом. После этого Вы связываете только значения столбцов B:B (пропускающий пробелы в случае необходимости).
Надеюсь, это поможет.
Во-первых, почему бы не сохранить массив строк вместо этого, поскольку Вы проходите все ячейки, затем свяжите все это в конце?
Иначе Вы будете использовать строковые функции как INSTR и MID, чтобы сделать что-то как:
start1 = instr(myLongString,"Y, ")
if start1 > 0 Then
start2 = instr(myLongString,"D, ")
if start2 > 0 then
newLongString = left(myLongString, start2 - 1) & _
mid(myLongString, start2 + 3)
end if
end if
Но, поскольку я сказал, я сохраню массив, который легко циклично выполнить через, затем после того как у Вас есть все значения, Вы ЗНАЕТЕ, что будете использовать, просто связывать их в конце.
Попытка:
=IF(ISERROR(FIND("Y",A1)),A1,SUBSTITUTE(A1,"D, ",""))
Но это предполагает, что у Вас всегда есть запятая и пространство после D.
Вероятно, легче запуститься в конце, сделать Ваши дополнения к началу строки и только добавить D, если Y не присутствует.
Я предполагаю, что D мог появиться где угодно, таким образом, как насчет:
If InStr(strString, "Y") > 0 Then
strString = Replace(strString, "d", "")
strString = Replace(strString, " ", "")
strString = Replace(strString, " ,", "")
strString = Replace(strString, ",,", ",")
End If
Если нет слишком многих из этих комбинаций, которые Вы хотите удалить, можно использовать =IF (НАЙДИТЕ ("D"; A2)> 0; ЗАМЕНА (A2; 1; 3 дюйма";); A2).