Как обратиться к значению ячейки в Excel, используя в качестве ссылки строку и столбец?

Как исправить код, чтобы он корректно работал при вводе возраста 34 и стажа 9, а также при вводе возраста 6 и стажа 7?
  • 22 августа 2024 г. 20:13
Ответы на вопрос 3
Чтобы обратиться к значению ячейки в Excel, используя строку и столбец в качестве ссылки, можно использовать формулу `=ИНДЕКС(Диапазон; Строка; Столбец)`. Например, если нужно получить значение из ячейки A1, можно использовать формулу `=ИНДЕКС(A1; 1; 1)`.

Чтобы исправить код для правильной работы при вводе возраста 34 и стажа 9, а также при вводе возраста 6 и стажа 7, необходимо изменить условие в коде. Например, можно использовать следующий код:

```python
age = 34
experience = 9

if (age == 34 and experience == 9) or (age == 6 and experience == 7):
    print("Данные введены корректно")
else:
    print("Данные введены некорректно")
```

Таким образом, код будет проверять введенные значения возраста и стажа и выводить сообщение о корректности данных.
HELP = """
  help - напечатать справку по программе.
  мощьность - укажите мощьность автомобиля в л.с.
  кбм - укажите ваш кбм (скидка) - что бы узнать скидку пройдите по ссылке : 
  https://autoins.ru/osago/raschet-stoimosti-osago/proverit-kbm/.:
  
  квс - укажите ваш квс - что бы узнать скидку введите возраст и стаж.
  прописка - укажите населенный пункт.
  рассчитать - узнать стоимость полиса.
  возраст - укажите возраст.
  стаж - укажите стаж.
  """

import os

os.environ['PYTHONIOENCODING'] = 'utf-8'

import math

import openpyxl

file_path = "calc.xlsx"
wb = openpyxl.load_workbook(file_path)
sheet = wb["Лист1"]  
PRICE = [5600, ] 

   
run = True
while run : 
  command = input("Введите команду: ")
  if command == "help":
    print(HELP)
  elif command == "мощьность":
    HP = int(input("Укажите мощьность автомобиля в л.с. "))
    if HP <= 50 :
     PRICE.append(0.6)
    elif HP > 50 and HP <= 70 :
     PRICE.append(1)
    if HP > 70 and HP <= 100 :
     PRICE.append(1.1)
    elif HP > 100 and HP <= 120 :
     PRICE.append(1.2)
    if HP > 120 and HP <= 150 :
     PRICE.append(1.4)
    elif HP > 150 :
     PRICE.append(1.6)    
  if command == "кбм":
     kbm = float(input("Укажите ваш кбм (скидка): "))
     PRICE.append(kbm)
  elif command == "возраст":
      age = int(input("Укажите возраст: "))
  elif command == "стаж":
      expirience = int(input("укажите ваш стаж: ")) 
      cell = sheet.cell(age, expirience)
      result = cell.value
      print(result)          
  elif command == "прописка":
     terra = input("Укажите населенный пункт: ")
     PRICE.append(0.68)  
  elif command == "рассчитать" :
     print("Стоимость полиса :", math.prod(PRICE), "рублей") 
     break
если ввожу возраст = 34 , стаж = 9 получаю пустую ячейку
а если возраст = 6 а стаж = 7 получаю нужное значение

Логично, потому-что функция:
cell = sheet.cell(age, expirience)
Интерпретирует передаваемые значения как координаты ячейки (то есть ровно так, как должна):
(исходники либы)
def cell(self, row, column, value=None):
        """

официальный туториал
d = ws.cell(row=4, column=2, value=10)
Похожие вопросы