3

Я пытаюсь создать своего рода базу данных / карту сайта, и мне нужно иметь возможность собирать данные, которые я уже знаю, и использовать их для создания нескольких копий одной ячейки, добавления чего-либо к содержимому этой ячейки на основе числа в другой ячейке. Ниже приведен пример данных, которые у меня есть

26      example.com/search?find_loc=St.+John's+Newfoundland

Что мне нужно сделать, это взять URL-адрес и, исходя из того, что у нас есть 26 страниц, создать 26-страничный URL-адрес, добавив к каждому, кроме первого URL-адреса, номер страницы, как показано в примере ниже в 3-й строке.

Производить это:

example.com/search?find_loc=St.+John's+Newfoundland
example.com/search?find_loc=St.+John's+Newfoundland&start=10
example.com/search?find_loc=St.+John's+Newfoundland&start=20
example.com/search?find_loc=St.+John's+Newfoundland&start=30
example.com/search?find_loc=St.+John's+Newfoundland&start=40
example.com/search?find_loc=St.+John's+Newfoundland&start=50
example.com/search?find_loc=St.+John's+Newfoundland&start=60
example.com/search?find_loc=St.+John's+Newfoundland&start=70
example.com/search?find_loc=St.+John's+Newfoundland&start=80
example.com/search?find_loc=St.+John's+Newfoundland&start=90
example.com/search?find_loc=St.+John's+Newfoundland&start=100
example.com/search?find_loc=St.+John's+Newfoundland&start=110
example.com/search?find_loc=St.+John's+Newfoundland&start=120
example.com/search?find_loc=St.+John's+Newfoundland&start=130
example.com/search?find_loc=St.+John's+Newfoundland&start=140
example.com/search?find_loc=St.+John's+Newfoundland&start=150
example.com/search?find_loc=St.+John's+Newfoundland&start=160
example.com/search?find_loc=St.+John's+Newfoundland&start=170
example.com/search?find_loc=St.+John's+Newfoundland&start=180
example.com/search?find_loc=St.+John's+Newfoundland&start=190
example.com/search?find_loc=St.+John's+Newfoundland&start=200
example.com/search?find_loc=St.+John's+Newfoundland&start=210
example.com/search?find_loc=St.+John's+Newfoundland&start=220
example.com/search?find_loc=St.+John's+Newfoundland&start=230
example.com/search?find_loc=St.+John's+Newfoundland&start=240
example.com/search?find_loc=St.+John's+Newfoundland&start=250

4 ответа4

0

Вот реализация подхода в моем комментарии к вашему вопросу. Ячейка A2 содержит базовый префикс, общий для всех URL-адресов, которые вы хотите сгенерировать. Ячейки B2, B3, B4, ... - это места, которые вы хотите сгенерировать. C2, C3, C4, ... - количество строк, генерируемых для каждого местоположения.

Каждое местоположение будет сгенерировано в своем собственном столбце. Формула в E1:

= ЕСЛИ (СТРОКА ()= 1, $ A $ 2 и $ В $ 2, ЕСЛИ (СТРОКА ()<= $ C $ 2, $ A $ 2 и $ В $ 2 & "& Start =" & (ROW ()- 1)* 10 , ""))

E2:

= ЕСЛИ (СТРОКА ()= 1, $ A $ 2 и $ B $ 3, ЕСЛИ (СТРОКА ()<= $ C $ 3, $ A $ 2 и $ В $ 3 & "& Start =" & (ROW ()- 1)* 10 , ""))

E3:

= ЕСЛИ (СТРОКА ()= 1, $ A $ 2 и $ B $ 4, ЕСЛИ (СТРОКА ()<= $ C $ 4, $ A $ 2 и $ В $ 4 & "& Start =" & (ROW ()- 1)* 10 , ""))

Ячейки "B" и "C" перемещаются на единицу каждый раз. Продолжайте шаблон, двигаясь вправо, а затем заполните формулы вниз.

Если у вас есть сотни мест и вы не хотите редактировать каждую формулу, дайте мне знать. Все это можно сделать с помощью одной формулы, но это потребует использования INDIRECT(), от которого я стараюсь держаться подальше. Это одна из изменчивых функций, поэтому ее следует использовать разумно.

0

Я предполагаю, что у вас есть количество в столбце A и ваши базовые URL-адреса в столбце B , и вы хотите, чтобы ваши построенные URL-адреса в столбце D начинались со строки 1.  Это довольно легко с «вспомогательными столбцами».  Я буду использовать столбцы G и H ; Вы можете использовать любые два столбца, которые вы хотите (например, Y и Z), и вы можете скрыть их, как только это заработает.

Введите следующее:

  • G11
  • H10
  • G2=IF(G1<0, -1, IF(H1+1<INDEX(A:A, G1), G1, IF(INDEX(A:A, G1+1)="", -1, G1+1)))
  • H2=IF(G2<0, -1, IF(H1+1<INDEX(A:A, G1), H1+1, 0))
  • D1=IF(G1<0, "", INDEX(B:B, G1) & IF(H1>0, "&start=" & H1*10, ""))

Выберите ячейки G2 и H2 и перетащите / заполните вниз.  Выберите ячейку D1 и перетащите / заполните вниз.

таблица

Это будет рассматривать 0 в столбце A как если бы это было 1.

0

Скорее всего, я объединю число с помощью & . Учтите это: A1 = начало URL (example.com/search?find_loc = St.+John's+Newfoundland & start =) B1 = конец URL-адреса (example.com/search?) Начиная с A2, перечислите все нужные вам числа (10, 20, 30 и т.д. Перетащите маленький маркер формулы, чтобы скопировать их плохих парней). С этой настройкой вы можете использовать следующую формулу в B2 и перетащить маркер заполнения, чтобы скопировать его полностью вниз.

=$A$1 & A2 & $B$1

Если вам нужна кликабельная гиперссылка, оберните формулу B2 в HYPERLINK перед копированием вниз.

=HYPERLINK($A$1 & A2 & $B$1)

0

Блоки кода помогают немного для удобочитаемости.

example.com/search?find_loc=St.+John's+Newfoundland 
example.com/search?find_loc=St.+John's+Newfoundland&start=10

...

example.com/search?find_loc=St.+John's+Newfoundland&start=240 
example.com/search?find_loc=St.+John's+Newfoundland&start=250

Я бы использовал функцию = CONCATENATE().

В ячейке A1 или в любой используемой вами ячейке поместите:

example.com/search?find_loc=St.+John's+Newfoundland 

В ячейке B1:

&start=

А в столбце C заполните столбец диапазоном 10..250. Затем объедините строки в столбце D:

=CONCATENATE($A$1, $B$1, $C1)

Скопируйте эту формулу вниз по столбцу, и вы сможете довольно легко отобразить ваши данные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .