AppleScript, чтобы сравнить значения ячеек, а затем поместить значение одной ячейки в другую - PullRequest
0 голосов
/ 10 марта 2011

в таблице приложений чисел у меня есть следующие данные

   A          B                     C                 D
user_id     login                user_id        login
2039        Abbott, Rachael                     Adams, Sue
110         Abbott, Shelby                      Adamson, Wendy
2910        Abraham, Binu                       Anderson, Daryl
121         Adams, Sue
122         Adamson, Anne
126         Adamson, Wendy

Я пытаюсь написать appleScript, который будет ...

  1. итерация вниз по логину в столбце D
  2. чтобы найти соответствующий логин в столбце B
  3. принять значение user_id в столбце A в строке, где было найдено совпадение
  4. и поместите его в столбец C в той же строке, что и запись в столбце D
set dName to "correlationstudies.numbers"
set sName to "users"
set tName to "Table 1"
set login_row to 2
set login_w_id_row to 2

tell application "Numbers" to tell document dName to tell sheet sName to tell table tName
   repeat
      set login to value of cell login_row of column 4
      if login = "" then exit repeat
      set login_w_id_row to 2

      repeat
         set logincomp to value of cell login_w_id_row of column 2
         if logincomp = login then
            set value of cell login_row of column 3 to value of cell login_w_id_row of column 1
            exit repeat
         end if
         set login_w_id_row to login_w_id_row + 1
      end repeat
      set login_row to login_row + 1
   end repeat
end tell

1 Ответ

1 голос
/ 11 марта 2011

AppleScript может быть лишним для того, что вы пытаетесь сделать. В документации по числам взгляните на функцию VLOOKUP, которой передается значение для поиска, набор ячеек для поиска и столбец значения для возврата. Я заставил его работать только путем замены порядка столбцов user_id и login, но как только я поместил имя входа в столбец A и user_id в столбец B, установка ячейки C1 = VLOOKUP (D2, A2: B7, 2) вернула 121 успешно .

...