Как действительно получают индекс столбца таблицы при помощи структурированной ссылки в Excel?

Вы не можете преобразовать десятичное представление varchar непосредственно в int (SELECT CONVERT(int, '0.27'); потерпит неудачу с той же ошибкой). Вам нужно CONVERT сначала значение decimal, а затем int. Итак, для вашего запроса:

SELECT POWIERZCHNIA,
       CONVERT(int,CONVERT(decimal(3,2),REPLACE(POWIERZCHNIA, ',', '.')))
FROM v_analiza_cechy_produktow;

Обратите внимание, что я использовал decimal(3,2), поскольку у нас есть только одно значение выборки '0.27'. вам скорее всего нужно будет выбрать другой масштаб и точность.

Это, однако, задает вопрос; почему вы храните десятичные значения как varchar?

6
задан David 15 February 2017 в 16:31
поделиться

4 ответа

Подходящей формулой на основе вашего примера будет

=COLUMN(MyTable[C])-COLUMN(MyTable)+1

Первая часть forumla COLUMN (MyTable [C]) вернет номер столбца указанного столбца. .

Вторая часть формулы COLUMN (MyTable) всегда возвращает номер первого столбца таблицы.

7
ответ дан 9 December 2019 в 20:50
поделиться

Сделайте Вы имеете в виду:

Dim r As Range
MyLetter ="AA"
Set r = Range(MyLetter & "1")
MyIndex= r.Column

Комментарий ре редактирования

Function GetRelativeColumn(Letter, RangeName)
Dim r As Range
Dim ColStart, ColRequired, ColTemp
Set r = Range(RangeName)

ColStart = r.Column
ColRequired = Range(Letter & "1").Column
ColTemp = ColRequired - ColStart + 1
If ColTemp < 1 Or ColTemp > r.Columns.Count Then
    MsgBox "Ooutside range"
Else
    GetRelativeColumn = ColTemp
End If
End Function
1
ответ дан 9 December 2019 в 20:50
поделиться

Вы могли использовать: =COLUMN(MyTable[*]) - COLUMN(MyTable[A]) + 1, где * столбец, индекс которого Вы хотите.

0
ответ дан 9 December 2019 в 20:50
поделиться

= небольшие изменения в ответах eJames: = COLUMN (MyTable [*]) - MIN (COLUMN (MyTable)) + 1, где * - столбец, для которого требуется индекс.

0
ответ дан 9 December 2019 в 20:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: